IMS DB - Conceptos básicos de Cobol

Incluimos llamadas DL / I dentro del programa de aplicación COBOL para comunicarse con la base de datos IMS. Usamos las siguientes declaraciones DL / I en el programa COBOL para acceder a la base de datos:

  • Declaración de entrada
  • Declaración de retorno
  • Declaración de llamada

Declaración de entrada

Se utiliza para pasar el control del DL / I al programa COBOL. Aquí está la sintaxis de la declaración de entrada:

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

La declaración anterior está codificada en el Procedure Divisionde un programa COBOL. Entremos en los detalles de la declaración de entrada en el programa COBOL -

  • El módulo de inicialización por lotes activa el programa de aplicación y se ejecuta bajo su control.

  • El DL / I carga los bloques y módulos de control necesarios y el programa de aplicación, y el control se le da al programa de aplicación.

  • DLITCBL son las siglas de DL/I to COBOL. La declaración de entrada se utiliza para definir el punto de entrada en el programa.

  • Cuando llamamos a un subprograma en COBOL, también se proporciona su dirección. Asimismo, cuando el DL / I cede el control al programa de aplicación, también proporciona la dirección de cada PCB definida en la PSB del programa.

  • Todas las PCB utilizadas en el programa de aplicación deben definirse dentro del Linkage Section del programa COBOL porque PCB reside fuera del programa de aplicación.

  • La definición de PCB dentro de la sección de vinculación se denomina como PCB Mask.

  • La relación entre las máscaras de PCB y los PCB reales almacenados se crea enumerando los PCB en la declaración de entrada. La secuencia de listado en la declaración de entrada debe ser la misma que aparece en el PSBGEN.

Declaración de retorno

Se utiliza para devolver el control al programa de control IMS. A continuación se muestra la sintaxis de la declaración Goback:

GOBACK

A continuación se enumeran los puntos fundamentales a tener en cuenta sobre la declaración Goback:

  • GOBACK está codificado al final del programa de aplicación. Devuelve el control a DL / I desde el programa.

  • No debemos usar STOP RUN ya que devuelve el control al sistema operativo. Si usamos STOP RUN, el DL / I nunca tiene la oportunidad de realizar sus funciones de terminación. Por eso, en los programas de aplicación DL / I, se utiliza la instrucción Goback.

  • Antes de emitir una declaración Goback, todos los conjuntos de datos que no sean DL / I utilizados en el programa de aplicación COBOL deben cerrarse; de ​​lo contrario, el programa finalizará de forma anormal.

Declaración de llamada

La declaración de llamada se utiliza para solicitar servicios DL / I, como ejecutar determinadas operaciones en la base de datos IMS. Aquí está la sintaxis de la declaración de llamada:

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

La sintaxis anterior muestra los parámetros que puede utilizar con la declaración de llamada. Discutiremos cada uno de ellos en la siguiente tabla:

S.No. Descripción de parámetros
1

DLI Function Code

Identifica la función DL / I a realizar. Este argumento es el nombre de los cuatro campos de caracteres que describen la operación de E / S.

2

PCB Mask

La definición de PCB dentro de la sección de vinculación se denomina máscara de PCB. Se utilizan en la declaración de entrada. No se requieren declaraciones SELECT, ASSIGN, OPEN o CLOSE.

3

Segment I/O Area

Nombre de un área de trabajo de entrada / salida. Ésta es un área del programa de aplicación en la que el DL / I coloca un segmento solicitado.

4

Segment Search Arguments

Estos son parámetros opcionales según el tipo de llamada emitida. Se utilizan para buscar segmentos de datos dentro de la base de datos IMS.

A continuación se presentan los puntos a tener en cuenta sobre la declaración de llamada:

  • CBLTDLI son las siglas de COBOL to DL/I. Es el nombre de un módulo de interfaz que se edita en enlace con el módulo de objeto de su programa.

  • Después de cada llamada DL / I, el DLI almacena un código de estado en la PCB. El programa puede usar este código para determinar si la llamada tuvo éxito o no.

Ejemplo

Para comprender mejor COBOL, puede seguir nuestro tutorial de COBOL  aquí . El siguiente ejemplo muestra la estructura de un programa COBOL que usa una base de datos IMS y llamadas DL / I. Discutiremos en detalle cada uno de los parámetros utilizados en el ejemplo en los próximos capítulos.

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.