IMS DB-Cobol 기본 사항
IMS 데이터베이스와 통신하기 위해 COBOL 애플리케이션 프로그램 내에 DL / I 호출을 포함합니다. COBOL 프로그램에서 다음 DL / I 문을 사용하여 데이터베이스에 액세스합니다.
- 입력 명세서
- Goback 진술
- 콜 문
입력 명세서
DL / I에서 COBOL 프로그램으로 제어를 전달하는 데 사용됩니다. 다음은 항목 문의 구문입니다.
ENTRY 'DLITCBL' USING pcb-name1
[pcb-name2]
위의 문장은 Procedure DivisionCOBOL 프로그램의. COBOL 프로그램의 항목 설명에 대해 자세히 살펴 보겠습니다.
배치 초기화 모듈은 응용 프로그램을 트리거하고 제어하에 실행됩니다.
DL / I는 필요한 제어 블록과 모듈 및 응용 프로그램을로드하고 응용 프로그램에 제어가 제공됩니다.
DLITCBL은 DL/I to COBOL. 입력 명령문은 프로그램의 진입 점을 정의하는 데 사용됩니다.
COBOL에서 하위 프로그램을 호출 할 때 해당 주소도 제공됩니다. 마찬가지로 DL / I가 응용 프로그램에 제어 권한을 부여 할 때 프로그램의 PSB에 정의 된 각 PCB의 주소도 제공합니다.
응용 프로그램에서 사용되는 모든 PCB는 내부에 정의되어야합니다. Linkage Section PCB가 애플리케이션 프로그램 외부에 있기 때문에 COBOL 프로그램의.
연결 섹션 내부의 PCB 정의는 다음과 같이 호출됩니다. PCB Mask.
PCB 마스크와 스토리지의 실제 PCB 간의 관계는 입력 문에 PCB를 나열하여 생성됩니다. 입력 문의 목록 순서는 PSBGEN에 나타나는 순서와 동일해야합니다.
Goback 진술
제어를 IMS 제어 프로그램으로 다시 전달하는 데 사용됩니다. 다음은 Goback 문의 구문입니다.
GOBACK
다음은 Goback 성명서에 대해 주목해야 할 기본 사항입니다.
GOBACK은 애플리케이션 프로그램 끝에 코딩됩니다. 프로그램에서 DL / I로 제어를 되돌립니다.
제어를 운영 체제로 되돌 리므로 STOP RUN을 사용해서는 안됩니다. STOP RUN을 사용하면 DL / I는 종료 기능을 수행 할 기회가 없습니다. 이것이 DL / I 응용 프로그램에서 Goback 문을 사용하는 이유입니다.
Goback 문을 발행하기 전에 COBOL 애플리케이션 프로그램에서 사용되는 모든 비 DL / I 데이터 세트를 닫아야합니다. 그렇지 않으면 프로그램이 비정상적으로 종료됩니다.
콜 문
Call 문은 IMS 데이터베이스에서 특정 작업을 실행하는 것과 같은 DL / I 서비스를 요청하는 데 사용됩니다. 다음은 call 문의 구문입니다.
CALL 'CBLTDLI' USING DLI Function Code
PCB Mask
Segment I/O Area
[Segment Search Arguments]
위의 구문은 call 문과 함께 사용할 수있는 매개 변수를 보여줍니다. 다음 표에서 각각에 대해 설명합니다.
S. 아니. | 매개 변수 및 설명 |
---|---|
1 | DLI Function Code 수행 할 DL / I 기능을 식별합니다. 이 인수는 I / O 작업을 설명하는 네 문자 필드의 이름입니다. |
2 | PCB Mask Linkage Section 내부의 PCB 정의를 PCB Mask라고합니다. 이들은 입력 문에 사용됩니다. SELECT, ASSIGN, OPEN 또는 CLOSE 문이 필요하지 않습니다. |
삼 | Segment I/O Area 입력 / 출력 작업 영역의 이름입니다. 이것은 DL / I가 요청 된 세그먼트를 넣는 응용 프로그램의 영역입니다. |
4 | Segment Search Arguments 이는 발행 된 호출 유형에 따라 선택적 매개 변수입니다. IMS 데이터베이스 내에서 데이터 세그먼트를 검색하는 데 사용됩니다. |
다음은 Call 문에 대해주의해야 할 사항입니다.
CBLTDLI는 COBOL to DL/I. 프로그램의 개체 모듈로 링크 편집 된 인터페이스 모듈의 이름입니다.
각 DL / I 호출 후 DLI는 PCB에 상태 코드를 저장합니다. 프로그램은이 코드를 사용하여 호출의 성공 여부를 확인할 수 있습니다.
예
COBOL에 대한 더 많은 이해를 위해 여기에서 COBOL 튜토리얼을 살펴볼 수 있습니다 . 다음 예제는 IMS 데이터베이스 및 DL / I 호출을 사용하는 COBOL 프로그램의 구조를 보여줍니다. 다음 장의 예제에서 사용되는 각 매개 변수에 대해 자세히 설명합니다.
IDENTIFICATION DIVISION.
PROGRAM-ID. TEST1.
DATA DIVISION.
WORKING-STORAGE SECTION.
01 DLI-FUNCTIONS.
05 DLI-GU PIC X(4) VALUE 'GU '.
05 DLI-GHU PIC X(4) VALUE 'GHU '.
05 DLI-GN PIC X(4) VALUE 'GN '.
05 DLI-GHN PIC X(4) VALUE 'GHN '.
05 DLI-GNP PIC X(4) VALUE 'GNP '.
05 DLI-GHNP PIC X(4) VALUE 'GHNP'.
05 DLI-ISRT PIC X(4) VALUE 'ISRT'.
05 DLI-DLET PIC X(4) VALUE 'DLET'.
05 DLI-REPL PIC X(4) VALUE 'REPL'.
05 DLI-CHKP PIC X(4) VALUE 'CHKP'.
05 DLI-XRST PIC X(4) VALUE 'XRST'.
05 DLI-PCB PIC X(4) VALUE 'PCB '.
01 SEGMENT-I-O-AREA PIC X(150).
LINKAGE SECTION.
01 STUDENT-PCB-MASK.
05 STD-DBD-NAME PIC X(8).
05 STD-SEGMENT-LEVEL PIC XX.
05 STD-STATUS-CODE PIC XX.
05 STD-PROC-OPTIONS PIC X(4).
05 FILLER PIC S9(5) COMP.
05 STD-SEGMENT-NAME PIC X(8).
05 STD-KEY-LENGTH PIC S9(5) COMP.
05 STD-NUMB-SENS-SEGS PIC S9(5) COMP.
05 STD-KEY PIC X(11).
PROCEDURE DIVISION.
ENTRY 'DLITCBL' USING STUDENT-PCB-MASK.
A000-READ-PARA.
110-GET-INVENTORY-SEGMENT.
CALL ‘CBLTDLI’ USING DLI-GN
STUDENT-PCB-MASK
SEGMENT-I-O-AREA.
GOBACK.