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.4.2. FIND

IBMメインフレームのIMS/DCにおけるFIND副次機能は、要求されたPCB名のPCBアドレスを返します。

OSIのFIND副次機能は、アプリケーションの実行環境に関する情報を取得します。

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名を指定します。