IMS DB - Nozioni di base su Cobol
Includiamo chiamate DL / I all'interno del programma applicativo COBOL per comunicare con il database IMS. Usiamo le seguenti istruzioni DL / I nel programma COBOL per accedere al database:
- Estratto conto
- Dichiarazione Goback
- Dichiarazione di chiamata
Estratto conto
Serve per passare il controllo dal DL / I al programma COBOL. Ecco la sintassi dell'istruzione di ingresso:
ENTRY 'DLITCBL' USING pcb-name1
[pcb-name2]
La dichiarazione di cui sopra è codificata in Procedure Divisiondi un programma COBOL. Entriamo nei dettagli della dichiarazione di entrata nel programma COBOL -
Il modulo di inizializzazione batch attiva il programma applicativo e viene eseguito sotto il suo controllo.
Il DL / I carica i blocchi di controllo e i moduli richiesti e il programma applicativo, e il controllo viene dato al programma applicativo.
DLITCBL sta per DL/I to COBOL. L'istruzione di ingresso viene utilizzata per definire il punto di ingresso nel programma.
Quando chiamiamo un sottoprogramma in COBOL, viene fornito anche il suo indirizzo. Allo stesso modo, quando il DL / I dà il controllo al programma applicativo, fornisce anche l'indirizzo di ogni PCB definito nel PSB del programma.
Tutti i PCB utilizzati nel programma applicativo devono essere definiti all'interno del file Linkage Section del programma COBOL perché PCB risiede al di fuori del programma applicativo.
La definizione PCB all'interno della sezione Linkage è chiamata come PCB Mask.
La relazione tra le maschere PCB e le PCB effettive in memoria viene creata elencando le PCB nella dichiarazione di entrata. La sequenza di elencazione nella dichiarazione di entrata dovrebbe essere la stessa che appare nel PSBGEN.
Dichiarazione Goback
Viene utilizzato per restituire il controllo al programma di controllo IMS. Di seguito è riportata la sintassi dell'istruzione Goback:
GOBACK
Di seguito sono elencati i punti fondamentali da notare sulla dichiarazione Goback:
GOBACK è codificato alla fine del programma applicativo. Restituisce il controllo a DL / I dal programma.
Non dovremmo usare STOP RUN poiché restituisce il controllo al sistema operativo. Se usiamo STOP RUN, il DL / I non ha mai la possibilità di eseguire le sue funzioni di terminazione. Ecco perché, nei programmi applicativi DL / I, viene utilizzata l'istruzione Goback.
Prima di emettere un'istruzione Goback, tutti i dataset non DL / I utilizzati nel programma applicativo COBOL devono essere chiusi, altrimenti il programma terminerà in modo anomalo.
Dichiarazione di chiamata
L'istruzione Call viene utilizzata per richiedere servizi DL / I come l'esecuzione di determinate operazioni sul database IMS. Ecco la sintassi dell'istruzione call:
CALL 'CBLTDLI' USING DLI Function Code
PCB Mask
Segment I/O Area
[Segment Search Arguments]
La sintassi sopra mostra i parametri che puoi usare con l'istruzione call. Discuteremo ciascuno di essi nella tabella seguente:
S.No. | Parametro e descrizione |
---|---|
1 | DLI Function Code Identifica la funzione DL / I da eseguire. Questo argomento è il nome dei quattro campi di caratteri che descrivono l'operazione di I / O. |
2 | PCB Mask La definizione PCB all'interno della sezione Linkage è chiamata PCB Mask. Sono utilizzati nella dichiarazione di entrata. Non sono richieste istruzioni SELECT, ASSIGN, OPEN o CLOSE. |
3 | Segment I/O Area Nome di un'area di lavoro di input / output. Questa è un'area del programma applicativo in cui il DL / I inserisce un segmento richiesto. |
4 | Segment Search Arguments Questi sono parametri opzionali a seconda del tipo di chiamata emessa. Vengono utilizzati per cercare segmenti di dati all'interno del database IMS. |
Di seguito sono riportati i punti da notare sulla dichiarazione di invito:
CBLTDLI sta per COBOL to DL/I. È il nome di un modulo di interfaccia che viene modificato tramite collegamento con il modulo oggetto del programma.
Dopo ogni chiamata DL / I, il DLI memorizza un codice di stato nel PCB. Il programma può utilizzare questo codice per determinare se la chiamata è riuscita o meno.
Esempio
Per una maggiore comprensione di COBOL, puoi seguire il nostro tutorial COBOL qui . L'esempio seguente mostra la struttura di un programma COBOL che utilizza il database IMS e le chiamate DL / I. Discuteremo in dettaglio ciascuno dei parametri utilizzati nell'esempio nei prossimi capitoli.
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.