IMS DB - Blocos de controle

Os blocos de controle IMS definem a estrutura do banco de dados IMS e o acesso de um programa a eles. O diagrama a seguir mostra a estrutura dos blocos de controle IMS.

DL / I usa os seguintes três tipos de blocos de controle -

  • Descritor de banco de dados (DBD)
  • Bloco de Especificação de Programa (PSB)
  • Bloco de controle de acesso (ACB)

Descritor de banco de dados (DBD)

Pontos a serem observados -

  • DBD descreve a estrutura física completa do banco de dados uma vez que todos os segmentos tenham sido definidos.

  • Ao instalar um banco de dados DL / I, um DBD deve ser criado, pois é necessário para acessar o banco de dados IMS.

  • Os aplicativos podem usar diferentes visões do DBD. Eles são chamados de Estruturas de Dados de Aplicativos e são especificados no Bloco de Especificação do Programa.

  • O administrador do banco de dados cria um DBD codificando DBDGEN declarações de controle.

DBDGEN

DBDGEN é um gerador de descritor de banco de dados. A criação de blocos de controle é responsabilidade do administrador do banco de dados. Todos os módulos de carregamento são armazenados na biblioteca IMS. As instruções de macro da linguagem Assembly são usadas para criar blocos de controle. A seguir, é fornecido um código de amostra que mostra como criar um DBD usando instruções de controle DBDGEN -

PRINT	NOGEN
DBD	NAME=LIBRARY,ACCESS=HIDAM
DATASET	DD1=LIB,DEVICE=3380
SEGM	NAME=LIBSEG,PARENT=0,BYTES=10
FIELD	NAME=(LIBRARY,SEQ,U),BYTES=10,START=1,TYPE=C
SEGM	NAME=BOOKSEG,PARENT=LIBSEG,BYTES=5
FIELD	NAME=(BOOKS,SEQ,U),BYTES=10,START=1,TYPE=C
SEGM	NAME=MAGSEG,PARENT=LIBSEG,BYTES=9
FIELD	NAME=(MAGZINES,SEQ),BYTES=8,START=1,TYPE=C
DBDGEN
FINISH
END

Vamos entender os termos usados ​​no DBDGEN acima -

  • Quando você executa as instruções de controle acima em JCL, ele cria uma estrutura física em que LIBRARY é o segmento raiz e BOOKS e MAGZINES são seus segmentos filhos.

  • A primeira instrução de macro DBD identifica o banco de dados. Aqui, precisamos mencionar o NOME e o ACESSO que é usado por DL ​​/ I para acessar este banco de dados.

  • A segunda instrução da macro DATASET identifica o arquivo que contém o banco de dados.

  • Os tipos de segmento são definidos usando a instrução macro SEGM. Precisamos especificar o PARENT desse segmento. Se for um segmento raiz, mencione PARENT = 0.

A tabela a seguir mostra os parâmetros usados ​​na instrução da macro FIELD -

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

Name

Nome do campo, normalmente de 1 a 8 caracteres

2

Bytes

Comprimento do campo

3

Start

Posição do campo dentro do segmento

4

Type

Tipo de dados do campo

5

Type C

Tipo de dados de personagem

6

Type P

Tipo de dados decimais compactados

7

Type Z

Tipo de dados decimais zoneados

8

Type X

Tipo de dados hexadecimal

9

Type H

Tipo de dados binários de meia palavra

10

Type F

Tipo de dados binários de palavra completa

Bloco de Especificação de Programa (PSB)

Os fundamentos do PSB são fornecidos abaixo -

  • Um banco de dados possui uma única estrutura física definida por um DBD, mas os programas aplicativos que o processam podem ter visualizações diferentes do banco de dados. Essas visualizações são chamadas de estrutura de dados do aplicativo e são definidas no PSB.

  • Nenhum programa pode usar mais de um PSB em uma única execução.

  • Os programas aplicativos têm seu próprio PSB e é comum que os programas aplicativos que possuem requisitos de processamento de banco de dados semelhantes compartilhem um PSB.

  • PSB consiste em um ou mais blocos de controle chamados Blocos de Comunicação de Programa (PCBs). O PSB contém um PCB para cada banco de dados DL / I que o programa aplicativo acessará. Discutiremos mais sobre PCBs nos próximos módulos.

  • PSBGEN deve ser executado para criar um PSB para o programa.

PSBGEN

PSBGEN é conhecido como Program Specification Block Generator. O exemplo a seguir cria um PSB usando PSBGEN -

PRINT   NOGEN
PCB     TYPE=DB,DBDNAME=LIBRARY,KEYLEN=10,PROCOPT=LS
SENSEG  NAME=LIBSEG
SENSEG  NAME=BOOKSEG,PARENT=LIBSEG
SENSEG  NAME=MAGSEG,PARENT=LIBSEG
PSBGEN  PSBNAME=LIBPSB,LANG=COBOL
END

Vamos entender os termos usados ​​no DBDGEN acima -

  • A primeira macroinstrução é o Bloco de Comunicação do Programa (PCB) que descreve o Tipo, Nome, Comprimento da Chave e Opção de Processamento do banco de dados.

  • O parâmetro DBDNAME na macro PCB especifica o nome do DBD. KEYLEN especifica o comprimento da chave concatenada mais longa. O programa pode processar no banco de dados. O parâmetro PROCOPT especifica as opções de processamento do programa. Por exemplo, LS significa apenas operações LOAD.

  • SENSEG é conhecido como Segment Level Sensitivity. Ele define o acesso do programa a partes do banco de dados e é identificado no nível do segmento. O programa tem acesso a todos os campos dos segmentos aos quais é sensível. Um programa também pode ter sensibilidade em nível de campo. Nisto, definimos um nome de segmento e o nome pai do segmento.

  • A última macroinstrução é PCBGEN. PSBGEN é a última instrução informando que não há mais instruções para processar. PSBNAME define o nome dado ao módulo PSB de saída. O parâmetro LANG especifica o idioma no qual o programa de aplicativo é escrito, por exemplo, COBOL.

Bloco de controle de acesso (ACB)

Listados abaixo estão os pontos a serem observados sobre os bloqueios de controle de acesso -

  • Os blocos de controle de acesso para um programa aplicativo combinam o descritor de banco de dados e o bloco de especificação do programa em um formato executável.

  • ACBGEN é conhecido como Gerador de Blocos de Controle de Acesso. É usado para gerar ACBs.

  • Para programas online, precisamos pré-construir ACBs. Portanto, o utilitário ACBGEN é executado antes de executar o programa aplicativo.

  • Para programas em lote, os ACBs também podem ser gerados em tempo de execução.