Ims-db-cobol-basics
IMS DB-Cobolの基本
COBOLアプリケーションプログラム内にDL/I呼び出しを含めて、IMSデータベースと通信します。 データベースにアクセスするには、COBOLプログラムで次のDL/Iステートメントを使用します-
- エントリーステートメント
- ゴーバックステートメント
- 声明文
エントリーステートメント
DL/IからCOBOLプログラムに制御を渡すために使用されます。 ここにエントリステートメントの構文があります-
上記のステートメントは、COBOLプログラムの*手続き部*でコーディングされています。 COBOLプログラムのエントリステートメントの詳細に行きましょう-
- バッチ初期化モジュールは、アプリケーションプログラムをトリガーし、その制御下で実行されます。
- DL/Iは必要な制御ブロックとモジュール、およびアプリケーションプログラムをロードし、制御はアプリケーションプログラムに与えられます。
- DLITCBLは、 DL/I to COBOL を表します。 エントリステートメントは、プログラムのエントリポイントを定義するために使用されます。
- COBOLでサブプログラムを呼び出すと、そのアドレスも提供されます。 同様に、DL/Iがアプリケーションプログラムに制御を渡すと、プログラムのPSBで定義された各PCBのアドレスも提供します。
- PCBはアプリケーションプログラムの外部にあるため、アプリケーションプログラムで使用されるすべてのPCBは、COBOLプログラムの Linkage Section 内で定義する必要があります。
- リンケージセクション内のPCB定義は、 PCB Mask と呼ばれます。
- ストレージ内のPCBマスクと実際のPCB間の関係は、entryステートメントにPCBをリストすることによって作成されます。 入力ステートメントのリストの順序は、PSBGENに表示される順序と同じでなければなりません。
ゴーバックステートメント
これは、制御をIMS制御プログラムに戻すために使用されます。 以下は、Gobackステートメントの構文です-
以下にリストされているのは、Gobackステートメントについて注意すべき基本的なポイントです-
- GOBACKは、アプリケーションプログラムの最後にコーディングされます。 プログラムから制御をDL/Iに戻します。
- オペレーティングシステムに制御を戻すため、STOP RUNを使用しないでください。 STOP RUNを使用すると、DL/Iは終了機能を実行する機会を得られません。 そのため、DL/Iアプリケーションプログラムでは、Gobackステートメントが使用されます。 *Gobackステートメントを発行する前に、COBOLアプリケーションプログラムで使用されているすべての非DL/Iデータセットを閉じる必要があります。閉じないと、プログラムが異常終了します。
声明文
呼び出しステートメントは、IMSデータベースで特定の操作を実行するなどのDL/Iサービスを要求するために使用されます。 ここに呼び出し文の構文があります-
上記の構文は、callステートメントで使用できるパラメーターを示しています。 次の表でそれらのそれぞれについて説明します-
S.No. | Parameter & Description |
---|---|
1 |
実行されるDL/I機能を識別します。 この引数は、I/O操作を記述する4つの文字フィールドの名前です。 |
2 |
PCB Mask リンケージセクション内のPCB定義は、PCBマスクと呼ばれます。 これらは、エントリステートメントで使用されます。 SELECT、ASSIGN、OPEN、またはCLOSEステートメントは不要です。 |
3 |
Segment I/O Area 入力/出力作業領域の名前。 これは、DL/Iが要求されたセグメントを入れるアプリケーションプログラムの領域です。 |
4 |
Segment Search Arguments これらは、発行されたコールのタイプに応じたオプションのパラメーターです。 IMSデータベース内のデータセグメントを検索するために使用されます。 |
以下は、Callステートメントに関する注意点です-
- CBLTDLIは、 COBOL to DL/I の略です。 プログラムのオブジェクトモジュールとリンク編集されるインターフェイスモジュールの名前です。
- 各DL/I呼び出しの後、DLIはPCBにステータスコードを保存します。 プログラムはこのコードを使用して、呼び出しが成功したか失敗したかを判断できます。
例
COBOLの詳細については、COBOLチュートリアルhttp://www.finddevguides.com/cobol/index [こちら]をご覧ください。 次の例は、IMSデータベースおよびDL/I呼び出しを使用するCOBOLプログラムの構造を示しています。 次の章の例で使用される各パラメーターについて詳しく説明します。