DB IMS - Blocchi di controllo
I Blocchi di controllo IMS definiscono la struttura del database IMS e l'accesso di un programma ad essi. Il diagramma seguente mostra la struttura dei blocchi di controllo IMS.
DL / I utilizza i seguenti tre tipi di blocchi di controllo:
- Descrittore database (DBD)
- Program Specification Block (PSB)
- Blocco controllo accessi (ACB)
Descrittore database (DBD)
Punti da notare -
DBD descrive la struttura fisica completa del database una volta che tutti i segmenti sono stati definiti.
Durante l'installazione di un database DL / I, è necessario creare un DBD poiché è necessario per accedere al database IMS.
Le applicazioni possono utilizzare viste diverse del DBD. Sono chiamate strutture dati dell'applicazione e sono specificate nel blocco delle specifiche del programma.
L'amministratore del database crea un DBD mediante la codifica DBDGEN dichiarazioni di controllo.
DBDGEN
DBDGEN è un generatore di descrittori di database. La creazione di blocchi di controllo è responsabilità dell'amministratore del database. Tutti i moduli di caricamento sono memorizzati nella libreria IMS. Le istruzioni macro del linguaggio assembly vengono utilizzate per creare blocchi di controllo. Di seguito è riportato un codice di esempio che mostra come creare un DBD utilizzando le istruzioni di controllo 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
Cerchiamo di comprendere i termini utilizzati nel DBDGEN di cui sopra -
Quando esegui le istruzioni di controllo sopra in JCL, crea una struttura fisica in cui LIBRERIA è il segmento radice e LIBRI e MAGZINES sono i suoi segmenti figlio.
La prima istruzione macro DBD identifica il database. Qui, dobbiamo menzionare il NOME e l'ACCESSO utilizzati da DL / I per accedere a questo database.
La seconda istruzione macro DATASET identifica il file che contiene il database.
I tipi di segmento vengono definiti utilizzando l'istruzione macro SEGM. Dobbiamo specificare il GENITORE di quel segmento. Se è un segmento Root, menziona PARENT = 0.
La tabella seguente mostra i parametri utilizzati nell'istruzione macro FIELD:
S.No | Parametro e descrizione |
---|---|
1 | Name Nome del campo, in genere da 1 a 8 caratteri |
2 | Bytes Lunghezza del campo |
3 | Start Posizione del campo all'interno del segmento |
4 | Type Tipo di dati del campo |
5 | Type C Tipo di dati carattere |
6 | Type P Tipo di dati decimale compresso |
7 | Type Z Tipo di dati decimale suddiviso in zone |
8 | Type X Tipo di dati esadecimale |
9 | Type H Tipo di dati binario a mezza parola |
10 | Type F Tipo di dati binario a parola intera |
Program Specification Block (PSB)
I fondamenti di PSB sono i seguenti:
Un database ha un'unica struttura fisica definita da un DBD ma i programmi applicativi che lo elaborano possono avere viste differenti del database. Queste viste sono chiamate struttura dati dell'applicazione e sono definite nel PSB.
Nessun programma può utilizzare più di un PSB in una singola esecuzione.
I programmi applicativi hanno il proprio PSB ed è comune che i programmi applicativi che hanno requisiti di elaborazione del database simili condividano un PSB.
PSB è costituito da uno o più blocchi di controllo denominati Program Communication Blocks (PCB). Il PSB contiene un PCB per ogni database DL / I a cui il programma applicativo accederà. Discuteremo di più sui PCB nei prossimi moduli.
PSBGEN deve essere eseguito per creare un PSB per il programma.
PSBGEN
PSBGEN è noto come Program Specification Block Generator. L'esempio seguente crea un PSB utilizzando 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
Cerchiamo di comprendere i termini utilizzati nel DBDGEN di cui sopra -
La prima istruzione macro è il Program Communication Block (PCB) che descrive il tipo di database, il nome, la lunghezza della chiave e l'opzione di elaborazione.
Il parametro DBDNAME sulla macro PCB specifica il nome del DBD. KEYLEN specifica la lunghezza della chiave concatenata più lunga. Il programma può elaborare nel database. Il parametro PROCOPT specifica le opzioni di elaborazione del programma. Ad esempio, LS significa solo operazioni LOAD.
SENSEG è noto come Segment Level Sensitivity. Definisce l'accesso del programma a parti del database ed è identificato a livello di segmento. Il programma ha accesso a tutti i campi all'interno dei segmenti a cui è sensibile. Un programma può anche avere una sensibilità a livello di campo. In questo, definiamo un nome di segmento e il nome padre del segmento.
L'ultima dichiarazione macro è PCBGEN. PSBGEN è l'ultima affermazione che dice che non ci sono più dichiarazioni da elaborare. PSBNAME definisce il nome dato al modulo PSB di output. Il parametro LANG specifica la lingua in cui è scritto il programma applicativo, ad esempio COBOL.
Blocco controllo accessi (ACB)
Di seguito sono elencati i punti da notare sui blocchi di controllo degli accessi:
I blocchi di controllo dell'accesso per un programma applicativo combinano il descrittore del database e il blocco delle specifiche del programma in un formato eseguibile.
ACBGEN è noto come generatore di blocchi di controllo degli accessi. Viene utilizzato per generare ACB.
Per i programmi in linea, dobbiamo pre-costruire gli ACB. Quindi l'utilità ACBGEN viene eseguita prima di eseguire il programma applicativo.
Per i programmi batch, gli ACB possono essere generati anche in fase di esecuzione.