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.