IMSDB-PCBマスク
PCBはProgramCommunicationBlockの略です。PCBマスクは、DL / I呼び出しで使用される2番目のパラメーターです。リンケージセクションで宣言されています。以下にPCBマスクの構文を示します-
01 PCB-NAME.
05 DBD-NAME PIC X(8).
05 SEG-LEVEL PIC XX.
05 STATUS-CODE PIC XX.
05 PROC-OPTIONS PIC X(4).
05 RESERVED-DLI PIC S9(5).
05 SEG-NAME PIC X(8).
05 LENGTH-FB-KEY PIC S9(5).
05 NUMB-SENS-SEGS PIC S9(5).
05 KEY-FB-AREA PIC X(n).
注意すべき重要なポイントは次のとおりです-
DL / Iは、データベースごとに、プログラム通信ブロックと呼ばれるストレージ領域を維持します。これは、アプリケーションプログラム内でアクセスされるデータベースに関する情報を格納します。
ENTRYステートメントは、リンケージセクションのPCBマスクとプログラムのPSB内のPCBの間に接続を作成します。DL / I呼び出しで使用されるPCBマスクは、操作に使用するデータベースを指示します。
これは、COBOLREADステートメントでのファイル名またはCOBOL書き込みステートメントでのレコード名の指定に類似していると見なすことができます。SELECT、ASSIGN、OPEN、またはCLOSEステートメントは必要ありません。
各DL / I呼び出しの後、DL / IはステータスコードをPCBに格納し、プログラムはそのコードを使用して、呼び出しが成功したか失敗したかを判別できます。
PCB名
注意点-
PCB名は、PCBフィールドの構造全体を参照する領域の名前です。
PCB名はプログラムステートメントで使用されます。
PCB名はPCBのフィールドではありません。
DBD名
注意点-
DBD名には文字データが含まれています。長さは8バイトです。
PCBの最初のフィールドは、処理されているデータベースの名前であり、特定のデータベースに関連付けられたデータベース記述のライブラリーからのDBD名を提供します。
セグメントレベル
注意点-
セグメントレベルは、セグメント階層レベルインジケータと呼ばれます。文字データが含まれ、長さは2バイトです。
セグメントレベルフィールドには、処理されたセグメントのレベルが格納されます。セグメントが正常に取得されると、取得されたセグメントのレベル番号がここに保存されます。
セグメントレベルフィールドの値が15を超えることはありません。これは、DL / Iデータベースで許可されるレベルの最大数であるためです。
ステータスコード
注意点-
ステータスコードフィールドには、2バイトの文字データが含まれています。
ステータスコードには、DL / Iステータスコードが含まれます。
DL / Iが呼び出しの処理を正常に完了すると、スペースは状況コードフィールドに移動されます。
スペース以外の値は、呼び出しが成功しなかったことを示します。
ステータスコードGBはファイルの終わりを示し、ステータスコードGEは要求されたセグメントが見つからないことを示します。
Procオプション
注意点-
Procオプションは、4文字のデータフィールドを含む処理オプションとして知られています。
[処理オプション]フィールドは、プログラムがデータベースで実行することを許可されている処理の種類を示します。
予約済みDL / I
注意点-
予約済みDL / Iは、IMSの予約済み領域と呼ばれます。4バイトのバイナリデータを格納します。
IMSは、アプリケーション・プログラムに関連する独自の内部リンケージにこの領域を使用します。
セグメント名
注意点-
SEG名は、セグメント名フィードバック領域として知られています。8バイトの文字データが含まれています。
セグメントの名前は、各DL / I呼び出しの後にこのフィールドに格納されます。
長さFBキー
注意点-
長さFBキーは、キーフィードバック領域の長さとして知られています。4バイトのバイナリデータを格納します。
このフィールドは、前の呼び出し中に処理された最下位レベルのセグメントの連結キーの長さを報告するために使用されます。
キーフィードバックエリアで使用されます。
感度セグメントの数
注意点-
感度セグメントの数は、4バイトのバイナリデータを格納します。
これは、アプリケーションプログラムがどのレベルに敏感であるかを定義します。これは、論理データ構造内のセグメント数のカウントを表します。
重要なフィードバック領域
注意点-
キーフィードバック領域の長さは、PCBごとに異なります。
これには、プログラムのデータベースのビューで使用できる、可能な限り長い連結キーが含まれています。
データベース操作後、DL / Iは、このフィールドで処理された最下位レベルのセグメントの連結キーを返し、キー長フィードバック領域にキーの長さを返します。