IMS DB - Steuerblöcke

IMS-Steuerblöcke definieren die Struktur der IMS-Datenbank und den Zugriff eines Programms darauf. Das folgende Diagramm zeigt den Aufbau von IMS-Steuerblöcken.

DL / I verwendet die folgenden drei Arten von Steuerblöcken:

  • Datenbankdeskriptor (DBD)
  • Programmspezifikationsblock (PSB)
  • Zugangskontrollblock (ACB)

Datenbankdeskriptor (DBD)

Zu beachtende Punkte -

  • DBD beschreibt die vollständige physische Struktur der Datenbank, sobald alle Segmente definiert wurden.

  • Während der Installation einer DL / I-Datenbank muss eine DBD erstellt werden, die für den Zugriff auf die IMS-Datenbank erforderlich ist.

  • Anwendungen können unterschiedliche Ansichten des DBD verwenden. Sie werden als Anwendungsdatenstrukturen bezeichnet und im Programmspezifikationsblock angegeben.

  • Der Datenbankadministrator erstellt eine DBD durch Codierung DBDGEN Steueranweisungen.

DBDGEN

DBDGEN ist ein Datenbankdeskriptor-Generator. Das Erstellen von Steuerblöcken liegt in der Verantwortung des Datenbankadministrators. Alle Lademodule werden in der IMS-Bibliothek gespeichert. Assembler-Makroanweisungen werden zum Erstellen von Steuerblöcken verwendet. Im Folgenden finden Sie einen Beispielcode, der zeigt, wie eine DBD mithilfe von DBDGEN-Steueranweisungen erstellt wird.

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

Lassen Sie uns die in der obigen DBDGEN verwendeten Begriffe verstehen -

  • Wenn Sie die obigen Steueranweisungen in ausführen JCLEs wird eine physische Struktur erstellt, in der LIBRARY das Stammsegment und BOOKS und MAGZINES die untergeordneten Segmente sind.

  • Die erste DBD-Makroanweisung identifiziert die Datenbank. Hier müssen wir den Namen und den Zugriff erwähnen, die von DL / I verwendet werden, um auf diese Datenbank zuzugreifen.

  • Die zweite DATASET-Makroanweisung identifiziert die Datei, die die Datenbank enthält.

  • Die Segmenttypen werden mit der Makroanweisung SEGM definiert. Wir müssen die ELTERN dieses Segments angeben. Wenn es sich um ein Root-Segment handelt, erwähnen Sie PARENT = 0.

Die folgende Tabelle zeigt die in der FIELD-Makroanweisung verwendeten Parameter -

S.No. Parameter & Beschreibung
1

Name

Name des Feldes, normalerweise 1 bis 8 Zeichen lang

2

Bytes

Länge des Feldes

3

Start

Position des Feldes innerhalb des Segments

4

Type

Datentyp des Feldes

5

Type C

Zeichendatentyp

6

Type P

Gepackter dezimaler Datentyp

7

Type Z

Zonierter Dezimaldatentyp

8

Type X

Hexadezimaler Datentyp

9

Type H

Halbwort-Binärdatentyp

10

Type F

Vollwort-Binärdatentyp

Programmspezifikationsblock (PSB)

Die Grundlagen von PSB sind wie folgt:

  • Eine Datenbank hat eine einzelne physische Struktur, die von einer DBD definiert wird, aber die Anwendungsprogramme, die sie verarbeiten, können unterschiedliche Ansichten der Datenbank haben. Diese Ansichten werden als Anwendungsdatenstruktur bezeichnet und im PSB definiert.

  • Kein Programm kann mehr als ein PSB in einer einzigen Ausführung verwenden.

  • Anwendungsprogramme haben ein eigenes PSB, und es ist üblich, dass Anwendungsprogramme mit ähnlichen Anforderungen an die Datenbankverarbeitung ein PSB gemeinsam nutzen.

  • PSB besteht aus einem oder mehreren Steuerblöcken, die als Program Communication Blocks (PCBs) bezeichnet werden. Das PSB enthält eine Leiterplatte für jede DL / I-Datenbank, auf die das Anwendungsprogramm zugreift. Wir werden in den kommenden Modulen mehr über Leiterplatten diskutieren.

  • PSBGEN muss ausgeführt werden, um ein PSB für das Programm zu erstellen.

PSBGEN

PSBGEN ist als Programmspezifikationsblockgenerator bekannt. Im folgenden Beispiel wird ein PSB mit PSBGEN erstellt.

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

Lassen Sie uns die in der obigen DBDGEN verwendeten Begriffe verstehen -

  • Die erste Makroanweisung ist der Program Communication Block (PCB), der den Datenbanktyp, den Namen, die Schlüssellänge und die Verarbeitungsoption beschreibt.

  • Der Parameter DBDNAME im PCB-Makro gibt den Namen der DBD an. KEYLEN gibt die Länge des längsten verketteten Schlüssels an. Das Programm kann in der Datenbank verarbeiten. Der Parameter PROCOPT gibt die Verarbeitungsoptionen des Programms an. Zum Beispiel bedeutet LS nur LOAD Operations.

  • SENSEG ist als Segment Level Sensitivity bekannt. Es definiert den Zugriff des Programms auf Teile der Datenbank und wird auf Segmentebene identifiziert. Das Programm hat Zugriff auf alle Felder innerhalb der Segmente, für die es empfindlich ist. Ein Programm kann auch eine Empfindlichkeit auf Feldebene haben. In diesem definieren wir einen Segmentnamen und den übergeordneten Namen des Segments.

  • Die letzte Makroanweisung ist PCBGEN. PSBGEN ist die letzte Anweisung, die besagt, dass keine weiteren Anweisungen zu verarbeiten sind. PSBNAME definiert den Namen des PSB-Ausgangsmoduls. Der Parameter LANG gibt die Sprache an, in der das Anwendungsprogramm geschrieben ist, z. B. COBOL.

Zugangskontrollblock (ACB)

Nachfolgend sind die Punkte aufgeführt, die bei Zugriffssteuerungsblöcken zu beachten sind.

  • Zugriffssteuerungsblöcke für ein Anwendungsprogramm kombinieren den Datenbankdeskriptor und den Programmspezifikationsblock zu einer ausführbaren Form.

  • ACBGEN ist als Access Control Blocks Generator bekannt. Es wird verwendet, um ACBs zu generieren.

  • Für Online-Programme müssen wir ACBs vorab erstellen. Daher wird das Dienstprogramm ACBGEN ausgeführt, bevor das Anwendungsprogramm ausgeführt wird.

  • Bei Batch-Programmen können ACBs auch zur Ausführungszeit generiert werden.