IMS データ取得出口

データ取得出口により、DL/I データベースのセグメントに対する更新をデータ取得出口プログラムに渡すことができます。メインフレーム IMS ではデータを DB2 に入力するためにこれらの出口が提供されており、通常は IBM Data Propagator 製品を使用します。Data Propagator はデータ取得出口を取り入れて、DB2 にデータを入力するために使用します。また独自のデータ取得出口を記述し、入力を実行するかまたは他の機能を実行することができます。

これはメインフレーム機能のエミュレーションです。

呼び出し
データ取得出口は、実行時に、その出口ルーチンが定義されているセグメントで変更が発生した場合に呼び出されます。データ取得出口は、次の 2 つの方法のいずれかで指定します。
  • JCL で、DBD の呼び出し時に、EXIT=exitname を使用する。
  • DBD ソースで、SEGM=exitname を使用する。

データ取得はデフォルトで有効になっています。したがって、データベースに出口が定義されている場合は、自動的に実行されます。

重要: 定義されているすべてのデータ取得出口が存在していることを確認してください。ただし、移行されたアプリケーションのサポートに必要でない、またはオフロード テストに必要でないデータ取得出口が、DBD ソースに含まれている場合は、次のいずれかの方法によって、そのルーチンが実行されないようにすることができます。
  • DBD ソースから不要なデータ取得出口をすべて削除し、再コンパイルします。
  • NODCX 指令を設定した mfims dbdgen コマンドを使用して再コンパイルします。この場合、DBD ソース内で指定されているすべてのデータ取得出口ルーチンが、Enterprise Server でロードされなくなります。このオプションは、オフロード テスト時など、DBD ソース内のどのデータ取得出口ルーチンも必要ない場合に使用してください。これにより、DBD ソースを変更せずにテストを実施できます。詳細については、「NODCX」を参照してください。
コーディング要件
Enterprise Server では、本ドキュメントに記載されている場合を除き、IBM メインフレーム IMS ドキュメントの仕様に従ってコーディングされた COBOL での IMS データ取得出口の使用をサポートしています。ただし、Enterprise Server では、IBM Data Propagator の機能はサポートされていません。IBM のドキュメントへのアクセス方法については、IBM Web サイトを参照してください。
注: DBD で定義されているすべての出口をコンパイルまたはアセンブルする必要はありません。アプリケーションに必要な出口をダウンロードするだけです。特定の出口プログラムが実行時に見つからない場合は、コンソール ログにメッセージが書き込まれ、その出口は DBD で定義されていないものとして処理が続行されます。
データ取得出口をコーディングする際は、次の事項をガイドラインとして使用してください。
  • Enterprise Server では、次をサポートしています。
    • COBOL で記述されたデータ取得出口。
    • 1 つの DBD セグメントに対して、最大 9 個の出口ルーチン。DBD 内のすべてのセグメントに対して定義できるデータ取得出口の総数に制限はありません。
    • XPCB および XSDB パラメーター ブロック内のすべてのフィールド。すべての XPCB 戻りコードに対して、適切なアクションが設定されている必要があります。
    • 論理関係を使用するデータベース。この場合、最大 32 の入れ子になった階層関係および最大 99 のセグメント レベルにわたって、セグメントの削除をカスケードできます。
    • 現在アクティブな PSB で定義されている任意の PCB に対して DL/I 呼び出しを行うデータ取得出口プログラム。
  • 1 つの IMS アプリケーション リージョンで、最大 256 個のアクティブな出口ルーチンがサポートされます。つまり、PSB によって参照される DBD で任意の数の出口を定義可能ですが、セグメントの更新で呼び出すことができる出口は 256 個までになります。出口は、対応するデータベース セグメントが更新されてその出口が呼び出された場合にアクティブになります。
  • データ取得出口では、次の作用対象がサポートされます。
    EXIT
    DBD 文と SEGM 文の両方でサポートされており、次のオプションがあります。
    • KEY
    • DATA
    • PATH
    • CASCADE。KEY および DATA サブオプションを含む
    注: Enterprise Server では、CASCADE PATH サブオプションまたは LOG オプションはサポートされていません。したがって、データ取得のログ レコードはディスクに書き込まれないため、非同期処理には使用できません。
    VERSION
    DBD 文でサポートされています。XPCB パラメーター ブロックは、VERSION 作用対象の値を指します。VERSION 値の最大長は 128 バイトです (置換後)。VERSION 作用対象が指定されていない場合は、デフォルトの 13 バイトの日時スタンプが生成されます。置換可能な変数 &SYSDATE および &SYSTIME もサポートされています。
ランタイム動作
データ取得出口について想定されるランタイム動作は、次のとおりです。
  • データ取得出口は、BMP および DL/I リージョンに加え、CICS および IMS Dynamic Database Attach (DDBA) リージョン タイプなど、すべての IMS アプリケーション リージョン タイプから呼び出されます。
  • 出口の呼び出し順序は標準の規則に従います。これには、パス呼び出しに必要な場合には、降順で出口を複数回呼び出すことが含まれます。カスケード削除の場合、出口は昇順で呼び出されます。
  • メインフレーム IMS とは異なり、置換操作時に、イメージング前とイメージング後のセグメントの比較は実行されません。置換呼び出しでは、データが変更されていない場合でも、常にセグメントが更新されます。つまり、置換呼び出しについては、データが変更されたかどうかにかかわらず、常にデータ取得出口が呼び出されます。
  • デバッグ用にデータ取得出口プログラムをコンパイルした場合は、出口の呼び出し時にそれぞれのデバッガーによって示されます。
  • 8 以上の XPCB 戻りコードは、Enterprise Server コンソール ログに記録されます。