IMS DB - Principes de base de Cobol

Nous incluons les appels DL / I dans le programme d'application COBOL pour communiquer avec la base de données IMS. Nous utilisons les instructions DL / I suivantes dans le programme COBOL pour accéder à la base de données -

  • Déclaration d'entrée
  • Déclaration de Goback
  • Déclaration d'appel

Déclaration d'entrée

Il est utilisé pour passer le contrôle du DL / I au programme COBOL. Voici la syntaxe de l'instruction d'entrée -

ENTRY 'DLITCBL' USING pcb-name1
                     [pcb-name2]

La déclaration ci-dessus est codée dans le Procedure Divisiond'un programme COBOL. Entrons dans les détails de l'instruction d'entrée dans le programme COBOL -

  • Le module d'initialisation par lots déclenche le programme d'application et est exécuté sous son contrôle.

  • Le DL / I charge les blocs de commande et les modules nécessaires ainsi que le programme d'application, et le contrôle est donné au programme d'application.

  • DLITCBL signifie DL/I to COBOL. L'instruction d'entrée sert à définir le point d'entrée dans le programme.

  • Lorsque nous appelons un sous-programme en COBOL, son adresse est également fournie. De même, lorsque le DL / I donne le contrôle au programme d'application, il fournit également l'adresse de chaque PCB défini dans le PSB du programme.

  • Tous les PCB utilisés dans le programme d'application doivent être définis à l'intérieur du Linkage Section du programme COBOL car PCB réside en dehors du programme d'application.

  • La définition du PCB à l'intérieur de la section Linkage est appelée PCB Mask.

  • La relation entre les masques PCB et les PCB réels stockés est créée en listant les PCB dans la déclaration d'entrée. La séquence d'inscription dans la déclaration d'entrée doit être la même que celle figurant dans le PSBGEN.

Déclaration de Goback

Il est utilisé pour renvoyer le contrôle au programme de contrôle IMS. Voici la syntaxe de l'instruction Goback -

GOBACK

Vous trouverez ci-dessous les points fondamentaux à noter concernant la déclaration Goback -

  • GOBACK est codé à la fin du programme d'application. Il renvoie le contrôle à DL / I à partir du programme.

  • Nous ne devons pas utiliser STOP RUN car il renvoie le contrôle au système d'exploitation. Si nous utilisons STOP RUN, le DL / I n'a jamais la chance d'exécuter ses fonctions de terminaison. C'est pourquoi, dans les programmes d'application DL / I, l'instruction Goback est utilisée.

  • Avant d'émettre une instruction Goback, tous les ensembles de données non DL / I utilisés dans le programme d'application COBOL doivent être fermés, sinon le programme se terminera anormalement.

Déclaration d'appel

L'instruction Call est utilisée pour demander des services DL / I tels que l'exécution de certaines opérations sur la base de données IMS. Voici la syntaxe de l'instruction call -

CALL 'CBLTDLI' USING DLI Function Code
                        PCB Mask
                        Segment I/O Area
                        [Segment Search Arguments]

La syntaxe ci-dessus montre les paramètres que vous pouvez utiliser avec l'instruction call. Nous discuterons de chacun d'eux dans le tableau suivant -

S.No. Paramètre et description
1

DLI Function Code

Identifie la fonction DL / I à exécuter. Cet argument est le nom des quatre champs de caractères qui décrivent l'opération d'E / S.

2

PCB Mask

La définition de PCB à l'intérieur de la section de liaison est appelée masque de PCB. Ils sont utilisés dans l'instruction d'entrée. Aucune instruction SELECT, ASSIGN, OPEN ou CLOSE n'est requise.

3

Segment I/O Area

Nom d'une zone de travail d'entrée / sortie. Il s'agit d'une zone du programme d'application dans laquelle le DL / I place un segment demandé.

4

Segment Search Arguments

Ce sont des paramètres optionnels en fonction du type de l'appel émis. Ils sont utilisés pour rechercher des segments de données dans la base de données IMS.

Vous trouverez ci-dessous les points à noter concernant l'instruction Call -

  • CBLTDLI signifie COBOL to DL/I. Il s'agit du nom d'un module d'interface édité en lien avec le module objet de votre programme.

  • Après chaque appel DL / I, le DLI stocke un code d'état dans le PCB. Le programme peut utiliser ce code pour déterminer si l'appel a réussi ou échoué.

Exemple

Pour plus de compréhension de COBOL, vous pouvez consulter notre tutoriel COBOL  ici . L'exemple suivant montre la structure d'un programme COBOL qui utilise la base de données IMS et les appels DL / I. Nous discuterons en détail de chacun des paramètres utilisés dans l'exemple dans les prochains chapitres.

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.