IMS DB - bloki sterujące

Bloki sterujące IMS definiują strukturę bazy danych IMS i dostęp do nich programu. Poniższy diagram przedstawia strukturę bloków sterujących IMS.

DL / I wykorzystuje następujące trzy typy bloków sterujących -

  • Deskryptor bazy danych (DBD)
  • Blok specyfikacji programu (PSB)
  • Blok kontroli dostępu (ACB)

Deskryptor bazy danych (DBD)

Punkty do zapamiętania -

  • DBD opisuje pełną fizyczną strukturę bazy danych po zdefiniowaniu wszystkich segmentów.

  • Podczas instalowania bazy danych DL / I należy utworzyć jedną DBD, ponieważ jest ona wymagana do uzyskania dostępu do bazy danych IMS.

  • Aplikacje mogą korzystać z różnych widoków DBD. Nazywane są one strukturami danych aplikacji i są określone w bloku specyfikacji programu.

  • Administrator bazy danych tworzy DBD przez kodowanie DBDGEN instrukcje kontrolne.

DBDGEN

DBDGEN jest generatorem deskryptorów bazy danych. Za tworzenie bloków sterujących odpowiada administrator bazy danych. Wszystkie moduły ładujące są przechowywane w bibliotece IMS. Do tworzenia bloków sterujących używane są makra języka asemblera. Poniżej podano przykładowy kod, który pokazuje, jak utworzyć DBD za pomocą instrukcji sterujących 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

Rozumiemy terminy użyte w powyższym DBDGEN -

  • Kiedy wykonujesz powyższe instrukcje sterujące w JCL, tworzy fizyczną strukturę, w której BIBLIOTEKA jest segmentem głównym, a KSIĄŻKI i MAGZINY są jego segmentami potomnymi.

  • Pierwsza instrukcja makra DBD identyfikuje bazę danych. Tutaj musimy wspomnieć o NAZWIE i DOSTĘPIE, które są używane przez DL / I w celu uzyskania dostępu do tej bazy danych.

  • Druga instrukcja makra DATASET identyfikuje plik zawierający bazę danych.

  • Typy segmentów są definiowane za pomocą makropolecenia SEGM. Musimy określić PARENT tego segmentu. Jeśli jest to segment główny, podaj PARENT = 0.

W poniższej tabeli przedstawiono parametry używane w makropoleceniu FIELD -

S.Nr Parametr i opis
1

Name

Nazwa pola, zwykle od 1 do 8 znaków

2

Bytes

Długość pola

3

Start

Położenie pola w segmencie

4

Type

Typ danych pola

5

Type C

Typ danych znakowych

6

Type P

Pakowany typ danych dziesiętnych

7

Type Z

Strefowy typ danych dziesiętnych

8

Type X

Szesnastkowy typ danych

9

Type H

Binarny typ danych pół słowa

10

Type F

Typ danych binarnych pełnych słów

Blok specyfikacji programu (PSB)

Podstawy PSB są podane poniżej -

  • Baza danych ma pojedynczą strukturę fizyczną zdefiniowaną przez DBD, ale aplikacje, które ją przetwarzają, mogą mieć różne widoki bazy danych. Te widoki nazywane są strukturą danych aplikacji i są zdefiniowane w PSB.

  • Żaden program nie może używać więcej niż jednego PSB w jednym wykonaniu.

  • Programy aplikacyjne mają własny PSB i często aplikacje, które mają podobne wymagania przetwarzania bazy danych, współużytkują PSB.

  • PSB składa się z jednego lub więcej bloków sterujących zwanych programowymi blokami komunikacyjnymi (PCB). PSB zawiera jedną płytkę drukowaną dla każdej bazy danych DL / I, do której program aplikacji będzie miał dostęp. Więcej o PCB omówimy w kolejnych modułach.

  • Aby utworzyć PSB dla programu, należy wykonać PSBGEN.

PSBGEN

PSBGEN jest znany jako Generator bloku specyfikacji programu. Poniższy przykład tworzy PSB przy użyciu 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

Rozumiemy terminy użyte w powyższym DBDGEN -

  • Pierwsza instrukcja makro to blok komunikacyjny programu (PCB), który opisuje typ bazy danych, nazwę, długość klucza i opcję przetwarzania.

  • Parametr DBDNAME w makrze PCB określa nazwę DBD. KEYLEN określa długość najdłuższego połączonego klucza. Program może przetwarzać w bazie danych. Parametr PROCOPT określa opcje przetwarzania programu. Na przykład LS oznacza tylko operacje LOAD.

  • SENSEG jest znany jako czułość na poziomie segmentu. Określa dostęp programu do części bazy danych i jest identyfikowany na poziomie segmentu. Program ma dostęp do wszystkich pól w segmentach, na które jest wrażliwy. Program może mieć również czułość na poziomie pola. W tym miejscu definiujemy nazwę segmentu i nazwę nadrzędną segmentu.

  • Ostatnia instrukcja makro to PCBGEN. PSBGEN to ostatnia instrukcja mówiąca, że ​​nie ma więcej instrukcji do przetworzenia. PSBNAME definiuje nazwę nadaną wyjściowemu modułowi PSB. Parametr LANG określa język, w którym napisana jest aplikacja, np. COBOL.

Blok kontroli dostępu (ACB)

Poniżej wymienione są punkty, na które należy zwrócić uwagę na temat bloków kontroli dostępu -

  • Bloki kontroli dostępu dla programu aplikacji łączą deskryptor bazy danych i blok specyfikacji programu w postać wykonywalną.

  • ACBGEN jest znany jako Generator bloków kontroli dostępu. Służy do generowania wyłączników mocy.

  • W przypadku programów online musimy wstępnie zbudować ACB. Dlatego narzędzie ACBGEN jest uruchamiane przed wykonaniem programu użytkowego.

  • W przypadku programów wsadowych ACB mogą być również generowane w czasie wykonywania.