IMS DB - Cobol Basics

Incluímos chamadas DL / I dentro do programa de aplicação COBOL para se comunicar com o banco de dados IMS. Usamos as seguintes instruções DL / I no programa COBOL para acessar o banco de dados -

  • Declaração de entrada
  • Declaração Goback
  • Declaração de Chamada

Declaração de entrada

É usado para passar o controle do DL / I para o programa COBOL. Aqui está a sintaxe da instrução de entrada -

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

A declaração acima está codificada no Procedure Divisionde um programa COBOL. Vamos entrar em detalhes da instrução de entrada no programa COBOL -

  • O módulo de inicialização em lote aciona o programa aplicativo e é executado sob seu controle.

  • O DL / I carrega os blocos de controle e módulos necessários e o programa aplicativo, e o controle é fornecido ao programa aplicativo.

  • DLITCBL significa DL/I to COBOL. A instrução de entrada é usada para definir o ponto de entrada no programa.

  • Quando chamamos um subprograma em COBOL, seu endereço também é fornecido. Da mesma forma, quando o DL / I passa o controle para o programa aplicativo, ele também fornece o endereço de cada PCB definido no PSB do programa.

  • Todos os PCBs usados ​​no programa aplicativo devem ser definidos dentro do Linkage Section do programa COBOL porque o PCB reside fora do programa aplicativo.

  • A definição de PCB dentro da seção de ligação é chamada de PCB Mask.

  • A relação entre as máscaras de PCB e os PCBs reais no armazenamento é criada listando os PCBs na instrução de entrada. A seqüência de listagem na declaração de entrada deve ser a mesma que aparece no PSBGEN.

Declaração Goback

É usado para passar o controle de volta para o programa de controle IMS. A seguir está a sintaxe da instrução Goback -

GOBACK

Listados abaixo estão os pontos fundamentais a serem observados sobre a declaração Goback -

  • GOBACK é codificado no final do programa de aplicação. Ele retorna o controle para DL / I do programa.

  • Não devemos usar STOP RUN, pois ele retorna o controle para o sistema operacional. Se usarmos STOP RUN, o DL / I nunca terá a chance de executar suas funções de terminação. É por isso que, em programas de aplicativos DL / I, a instrução Goback é usada.

  • Antes de emitir uma instrução Goback, todos os conjuntos de dados não DL / I usados ​​no programa de aplicação COBOL devem ser fechados, caso contrário, o programa será encerrado de forma anormal.

Declaração de Chamada

A instrução de chamada é usada para solicitar serviços DL / I, como a execução de certas operações no banco de dados IMS. Aqui está a sintaxe da instrução de chamada -

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

A sintaxe acima mostra os parâmetros que você pode usar com a instrução call. Discutiremos cada um deles na tabela a seguir -

S.No. Parâmetro e Descrição
1

DLI Function Code

Identifica a função DL / I a ser executada. Este argumento é o nome dos quatro campos de caracteres que descrevem a operação de E / S.

2

PCB Mask

A definição de PCB dentro da seção de ligação é chamada de máscara de PCB. Eles são usados ​​na declaração de entrada. Nenhuma instrução SELECT, ASSIGN, OPEN ou CLOSE é necessária.

3

Segment I/O Area

Nome de uma área de trabalho de entrada / saída. Esta é uma área do programa aplicativo na qual o DL / I coloca um segmento solicitado.

4

Segment Search Arguments

Esses são parâmetros opcionais, dependendo do tipo de chamada emitida. Eles são usados ​​para pesquisar segmentos de dados dentro do banco de dados IMS.

A seguir estão os pontos a serem observados sobre a declaração de convocação -

  • CBLTDLI significa COBOL to DL/I. É o nome de um módulo de interface editado por link com o módulo de objeto do seu programa.

  • Após cada chamada DL / I, o DLI armazena um código de status no PCB. O programa pode usar esse código para determinar se a chamada foi bem-sucedida ou falhou.

Exemplo

Para entender melhor o COBOL, você pode seguir nosso tutorial COBOL  aqui . O exemplo a seguir mostra a estrutura de um programa COBOL que usa o banco de dados IMS e chamadas DL / I. Discutiremos em detalhes cada um dos parâmetros usados ​​no exemplo nos 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.