Micro Focus 実装版の DSNRLI を使用する場合、以下の制限事項および制約事項が適用されます。
- Micro Focus 実装版の DSNRLI は、厳密には XA 仕様の拡張ではないため、メインフレーム バージョンで提供されている関数の一部は、この実装では提供されていません。たとえば、以下の関数が実装されていません。
- SIGNON
- AUTH SIGNON
- CONTEXT SIGNON - 接続の詳細情報 (ユーザー ID など) は、Enterprise Server の XA リソース定義に含まれます。データベースに対しては、直接呼び出しまたは SQL アプリケーション処理呼び出しは実行されないため、これらの呼び出しは演算を行いません。
- SET_ID
- SET_CLIENT_ID - CONTEXT SIGNON を参照
- FIND_DB2_SYSTEMS - 必要なシステムおよび XA リソースが Enterprise Server 構成で定義されているため、DB2 システムを検索する関数は必要ありません。
- (暗黙的な接続) - メインフレームでは、最初の EXEC SQL の呼び出しの前に IDENTIFY、SIGNON、CREATE THREAD シーケンスを呼び出さない場合、DSNRLI が暗黙的な接続を実行します。この実装では、DSNRLI が EXEC SQL 呼び出しを認識しないため、暗黙的な接続は行われません。特定の XA リソースを作業単位に関連付けるには、アプリケーションが DSNRLI を明示的に呼び出す必要があります。
- DSNHLI、DSNHLR - SQL 呼び出しを実行するためのエントリ ポイントは使用されません。アプリケーションが EXEC SQL 呼び出しを実行し、既存の SQL 機能を使用する必要があります。
- DSNWLI、DSNWLIR - Instrumentation Facility Interface (IFI) は利用できないため、IFI を呼び出すためのエントリ ポイントは使用されません。
- DB2 LUW の問題により、イニシエーターで DSNRLI を使用する 2 フェーズ コミット (2PC) プログラムを実行した後、同じイニシエーターで 1 フェーズ コミット (1PC) プログラムを含むジョブは実行できません。つまり、同じイニシエーターで同じ DB2 スイッチ モジュールを使用する DSNRLI プログラムがすでに実行されている場合、IKJEFTxx で実行されるプログラム、または DSNALI を使用するプログラムは失敗します。この問題の症状は、次のようなメッセージ シーケンスで示されます。
JCLCM0188I JOB01001 MFIAFN2 JOB STARTED
CASXO0001S XA Resource Manager initialization error. Resource DSN open failed, reason -00003
CASXO0016S DSN XA interface initialization failure
MVSXM0036S JOB01001 MFIAFN2 Database OPEN call failed "PROGRAM NAME"
ここで、MFIAFN2は、「DSN SYSTEM(DSN)」を使用する IKJEFT01 ステップを行うジョブであり、DSNRLI および同じ XA リソース (DSN) を使用するプログラムが、同じイニシエーターですでに実行されています。
この問題に対処するには、Enterprise Server のリージョン設定の XA リソース構成で指定したオープン文字列にTOC=P を追加します。正しいオープン文字列の例を以下に示します。DB=SAMPLE,UID=admin,PWD=passwd,TOC=P