DL/I呼び出し
アプリケーション・プログラムでシステム・サービス関数を使用するにはDL/I呼び出しが必要です。
本付録では、OSIがサポートするシステム・サービス呼び出しについて説明します。
DL/I呼び出しについては、『IMS V7 Application Programming: Transaction Manager』を参照してください。 |
1. システム・サービスDL/I呼び出し
1.1. CHKP(基本)呼び出し
基本CHKP呼び出しは、アプリケーション・プログラムが変更を適用するか、または異常終了した場合にリカバリを目的として使用します。
-
フォーマット
>>-CHKP--+-i/o pcb---+--i/o area-------------------------------><
-
パラメータ
パラメータ 説明 i/o pcb
入出力パラメータです。プログラムの最初のPCBとして渡される入出力PCBを指定します。
i/o area
入力パラメータです。8バイトのチェックポイントIDを指定します。
1.2. CHKP(シンボリック)呼び出し
シンボリックCHKP呼び出しは、アプリケーション・プログラムが変更を適用するか、または異常終了した場合にリカバリを目的として使用します。異常終了した場合は、拡張再始動(XRST)呼び出しを使用してプログラムを再起動することができます。最大7つのデータを保管することが可能であり、プログラムの再起動時に復元されます。
-
フォーマット
>>-CHKP--+-i/o pcb---+--i/o area length--i/o area--+-----------------------+-->< | .-------------------. | | V | | '---area length--area-+-'
-
パラメータ
パラメータ 説明 i/o pcb
入出力パラメータです。プログラムの最初のPCBとして渡される入出力PCBを指定します。
i/o area
入力パラメータです。8バイトのチェックポイントIDを指定します。
area length
入力パラメータです。エリア長を4バイトで指定します。
area
入力パラメータです。エリアの長さだけデータを保存します。
1.3. INIT呼び出し
IBMメインフレームのIMS/DCでINIT(初期設定)呼び出しを使用すると、アプリケーション・プログラムは各DB PCBのデータ可用性を検査することにより、データ可用性状態コードを受け取ることができます。
OSIでのINIT呼び出しは、アプリケーション・プログラムのINIT呼び出しの可否を確認するフラグを設定する目的にのみ使用します。
-
フォーマット
>>-INIT--+-i/o pcb---+--i/o area------------------------------->< '---aib-----'
-
パラメータ
パラメータ 説明 i/o pcb
入出力パラメータです。プログラムの最初のPCBとして渡される入出力PCBを指定します。
aib
入出力パラメータです。呼び出しに使用するAIB(アプリケーション・インターフェース・ブロック)を指定します。
i/o area
入出力パラメータです。セグメントの送信に十分なサイズの入出力域を指定します。
1.4. INQY呼び出し
INQY(照会)呼び出しは、実行環境、宛先のタイプと状態およびセッションの状態に関する情報を要求するために使用します。OSIでは、AIBSFUNCとしてENVIRONとFINDを使用できます。
-
フォーマット
>>-INQY--+-aib---+--i/o area-----------------------------------><
-
パラメータ
パラメータ 説明 aib
入出力パラメータです。呼び出しに使用するAIBを指定します。
i/o area
入出力パラメータです。セグメントの送信に十分なサイズの入出力域を指定します。
1.4.1. ENVIRON
ENVIRON副次機能は、アプリケーションの実行環境に関する情報を取得します。
-
出力
タイプ 長さ 値 説明 IMS ID
8
IMS IDを示します。
リリース・レベル
4
現在サポートされていません。
制御リージョン・タイプ
8
DB/DC
制御リージョンのタイプを示します。
アプリケーション・リージョン・タイプ
8
MPP、BMP
実行中のアプリケーションのタイプを示します。
リージョンID
4
現在サポートされていません。
アプリケーション・プログラム名
8
実行中のアプリケーションの名前を示します。
PSB名
8
実行中のPSBの名前を示します。
トランザクション名
8
実行中のトランザクションの名前を示します。
ユーザーID
8
現在サポートされていません。
グループ名
8
現在サポートされていません。
状況グループ標識
4
現在サポートされていません。
リカバリ・トークンのアドレス
4
現在サポートされていません。
アプリケーション・パラメータ・ストリングのアドレス
4
現在サポートされていません。
共用キュー標識
4
現在サポートされていません。
アドレス・スペースのユーザーID
8
現在サポートされていません。
ユーザーID標識
1
現在サポートされていません。
リソース・リカバリ・サービス(RRS)標識
3
現在サポートされていません。
カタログ使用可能化標識
8
現在サポートされていません。
1.5. LOG
IBMメインフレームのIMS/DCにおけるLOG呼び出しは、IMS システム・ログに情報を書き込むために使用されます。
OSIのLOG呼び出しは、OFM_OSI_LOG TABLEに情報を保存します。現在、OSIではAIBのみをサポートしています。
-
フォーマット
>>-LOG--+-aib---+------------------------------------------------><
-
パラメータ
パラメータ 説明 aib
入出力パラメータです。プログラムの最初のPCBとして渡されるIO-PCBを指定します。
1.6. ROLB
ROLB(ロールバック)呼び出しは、アプリケーション・プログラムで出力メッセージおよびデータベースの変更をキャンセルするために使用されます。
-
フォーマット
>>-ROLB--+-i/o pcb---+-----------------------------------------><
-
パラメータ
パラメータ 説明 i/o pcb
入出力パラメータです。プログラムの最初のPCBとして渡されるIO-PCBを指定します。
-
制限事項
-
OSCメッセージは、ROLB呼び出しを使用できません。
-
1.7. SYNC
SYNC(同期点)呼び出しは、アプリケーション・プログラムがコミット処理を行うために使用されます。BMPプログラムにのみ適用されます。
-
フォーマット
>>-SYNC--+-i/o pcb---+----------------------------------------->< '-aib-------'
-
パラメータ
パラメータ 説明 i/o pcb
入出力パラメータです。プログラムの最初のPCBとして渡されるIO-PCBを指定します。
aib
入出力パラメータです。呼び出しに使用するAIB(アプリケーション・インターフェース・ブロック)を指定します。
1.8. XRST
XRST(拡張再始動)呼び出しは、以前のアプリケーション・プログラム動作の記号チェックポイントから再始動するために使用されます。
-
フォーマット
>>-XRST--+-i/o pcb---+--i/o area length--i/o area--+-----------------------+-->< | .-------------------. | | V | | '---area length--area-+-'
-
パラメータ
パラメータ 説明 i/o pcb
入出力パラメータです。プログラムの最初のPCBとして渡されるIO-PCBを指定します。
i/o area length
入出力パラメータです。現在使用されていません。
i/o area
入力パラメータです。チェックポイントIDを指定します。
area length
入力パラメータです。領域の長さを4バイトで指定します。
area
入出力パラメータです。領域の長さだけのデータを復元します。
2. トランザクション管理 DL/I呼び出し
2.1. CHNG
CHGN(変更)呼び出しは、メッセージ・セグメントの宛先を変更するために使用します。CHNG呼び出しを使用して変更可能なALT-PCBの宛先を特定の論理端末、LU 6.2記述子、またはトランザクション・コードに指定することができます。
-
フォーマット
>>-CHNG--+-alternate pcb-+--destination name-------------------><
-
パラメータ
パラメータ 説明 alternate pcb
入出力パラメータです。CHNG呼び出しを使用する変更可能なALT-PCBを指定します。
destination name
変更するメッセージ・セグメントの宛先名を指定します。
2.2. CMD
CMD(コマンド)呼び出しは、アプリケーション・プログラムがIMSコマンドを入力するために使用します。GCMD呼び出しとともに使用してOSIコマンド・サーバーにコマンドを送り、その応答を受け取ることができます。コマンドの応答メッセージの最初のセグメントを取り出します。
-
フォーマット
>>-CMD--+-i/o pcb-+--i/o area----------------------------------><
-
パラメータ
パラメータ 説明 i/o pcb
入出力パラメータです。プログラムの最初のPCBとして渡されるIO-PCBを指定します。
i/o area
入出力パラメータです。セグメントの送信に十分なサイズの入出力域を指定します。
2.3. GCMD
CMD(コマンド結果の取り出し)呼び出しは、CMD呼び出しを使用して処理したコマンドの応答メッセージの次のセグメントを取り出します。
-
フォーマット
>>-GCMD--+-i/o pcb-+--i/o area---------------------------------><
-
パラメータ
パラメータ 説明 i/o pcb
入出力パラメータです。プログラムの最初のPCBとして渡されるIO-PCBを指定します。
i/o area
出力パラメータです。セグメントの送信に十分なサイズの入出力域を指定します。
2.4. GN
入力されたメッセージが1つ以上のセグメントを含む場合、GU呼び出しを使用してメッセージの最初のセグメントを取得した後、GN呼び出しを使用してセグメントを取得します。
-
フォーマット
>>-GN--+-i/o pcb-+--i/o area-----------------------------------><
-
パラメータ
パラメータ 説明 i/o pcb
入出力パラメータです。プログラムの最初のPCBとして渡されるIO-PCBを指定します。
i/o area
出力パラメータです。セグメントの送信に十分なサイズの入出力域を指定します。
2.5. GU
GU(後続取り出し)呼び出しは、メッセージの最初のセグメントを取得します。
-
フォーマット
>>-GU--+-i/o pcb-+--i/o area-----------------------------------><
-
パラメータ
パラメータ 説明 i/o pcb
入出力パラメータです。プログラムの最初のPCBとして渡されるIO-PCBを指定します。
i/o area
出力パラメータです。セグメントの送信に十分なサイズの入出力域を指定します。
2.6. ISRT
ISRT(挿入)呼び出しは、特定の宛先に1つのメッセージ・セグメントを送信するために使用します。宛先は、入出力PCB、代替PCBの指定に従います。
-
フォーマット
>>-ISRT--+-i/o pcb-------+--i/o area--+----------+------------->< '-alternate pcb-' '-mod name-'
-
パラメータ
パラメータ 説明 i/o pcb
入出力パラメータです。プログラムの最初のPCBとして渡されるIO-PCBを指定します。
alternate pcb
入出力パラメータです。PCBを指定します。
i/o area
出力パラメータです。セグメント送信に十分なサイズの入出力域を指定します。
mod name
出力メッセージを送信するための入力パラメータです。MOD名は8バイトで指定します。指定したMODに従って出力メッセージがフォーマットされます。
2.7. PURG
PURG(パージ)呼び出しは、ISRT呼び出しで送信したメッセージ・セグメントを出力します。アプリケーション・プログラムで1つ以上のメッセージ・セグメントを送信する場合、前のメッセージをパージするか、メッセージの送信を完了するために使用されます。
-
フォーマット
>>-PURG--+-i/o pcb-------+--+------------------------+--------->< '-alternate pcb-' '-i/o area--+----------+-' '-mod name-'
-
パラメータ
パラメータ 説明 i/o pcb
入出力パラメータです。プログラムの最初のPCBとして渡されるIO-PCBを指定します。
alternate pcb
入出力パラメータです。PCBを指定します。
i/o area
出力パラメータです。セグメント送信に十分なサイズの入出力域を指定します。
mod name
出力メッセージを送信するための入力パラメータです。MOD名は8バイトで指定します。指定したMODに従って出力メッセージがフォーマットされます。
PURG呼び出しは、出力メッセージの最初のセグメントのためのMOD名を指定します。