Micro Focus 実装版の DSNRLI を使用する場合、次の制限事項および制約事項が適用されます。
- Micro Focus 実装版の DSNRLI は、厳密には XA 仕様の拡張ではないため、メインフレーム バージョンで提供されている関数の一部は、この実装では提供されていません。たとえば、次の関数が実装されていません。
- SIGNON、AUTH SIGNON、CONTEXT SIGNON、SET_ID、SET_CLIENT_ID - 接続の詳細情報 (ユーザー ID など) は、Enterprise Server の XA リソース定義に含まれます。データベースに対しては、直接呼び出しまたは SQL アプリケーション処理呼び出しは実行されないため、これらの呼び出しは演算を行いません。
- 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 です。