XAR の計画および設計

注: 本トピックは、XDB または WebSphere MQ には該当しません。

XAR を使用するほとんどのアプリケーションでは、XAR を実装するプロセスは単純で直接的です。必要とされるのは、Enterprise Server で XAR を定義することだけです。XAR の定義の詳細については、「エンタープライズ サーバー リージョンの XA リソース (XAR) を定義するには」を参照してください。

ただし、より複雑なアプリケーションでは、必要な XAR を前もって計画してから設計し、そのようなアプリケーションの複雑性に対応する必要があります。

Micro Focus RM スイッチ モジュールを構築した後、Enterprise Server で XAR 定義に含めることができます。XAR 定義には xa_open 文字列が含まれており、基本となる RM のための固有の RM 構文をこの文字列に含めます。

RM 固有の xa_open 文字列構文のほかに、XAR 定義を細かく調整できるいくつかのオプションが用意されており、Enterprise Server でアプリケーションを実行する場合に最大の効率を実現できます。

XAR では、次の RM スイッチ モジュール タイプがサポートされています。

エンタープライズ サーバー リージョン用に XAR を構成する前に、次の点を考慮することをお勧めします。

アプリケーションで、埋め込み SQL は使用せずに、MFDBFH データストアのトランザクション ファイルを使用していますか。
アプリケーションで埋め込み SQL を使用していなければ、「Micro Focus ネイティブ データベース ファイル処理およびエンタープライズ サーバー リージョン データベース管理」の説明に従って MFDBFH XAR の定義を開始できます。
アプリケーションには複数の XAR が必要ですか。
これは、アプリケーションがアクセスするデータベース、およびアプリケーションとデータベースがやり取りする方法によって異なります。
アプリケーションで MFDBFH データストアのトランザクション ファイルを使用しているか、アプリケーションに同一 RM スイッチ モジュール タイプの複数の XAR を必要とする埋め込み SQL コードがありますか
アプリケーションで同一 RM スイッチ モジュール タイプの複数の XAR を必要とせず、MFDBFH トランザクション ファイルも使用しない場合は、XAID コンパイラ指令を使用してソース コードを再コンパイルする必要はなく、すぐにエンタープライズ サーバー リージョンにおいて XAR を定義できます。

ただし、一部のシナリオでは、同一タイプの複数の XAR が埋め込み SQL データベース アクセスを必要とする CICS、IMS、または IMTK のコンテナー管理サービス インターフェイス タイプのために必要となる場合があります。また、実行する埋め込み SQL アプリケーションとともに、MFDBFH を使用してデータベースに COBOL トランザクション ファイルを格納する場合もありますそのような場合は、複数の XAR 定義を用意するほか、XAID コンパイラ指令を使用してコードをコンパイルする必要があります。 詳細については、「複数の XAR の使用」を参照してください。

複数の別個の XAR を使用するよう埋め込み SQL アプリケーションがコーディングされていますか。
一般に、SQL コードは、別個のソース コード モジュールに格納されます。あるデータベースのみで使用されるモジュールもあれば、他のデータベースで使用されるモジュールもあります。この方法で構築されたコードは、適切な XAR ID の値に設定された XAID コンパイラ指令オプションを使用して、プログラム モジュールごとにコンパイルできます。これにより、コードを変更する必要がなくなります。
XAR での静的または動的 RM スイッチ モジュールの使用は最適な方法ですか。
これは、XAR がアプリケーションにどのようにアクセスされるかで異なります。詳細については、「RM スイッチ モジュールの登録」を参照してください。
トランザクションをローカルまたはグローバルに実行する必要がありますか。
これは、実行されるトランザクションのタイプによって異なります。詳細については、「SQL の xa_open 文字列構成オプション」で「LocalTX=(T|F)」セクションを参照してください。
ユーザー資格情報の取得および適用はいつどのように行われる必要がありますか。
xa_open で指定されているユーザー資格情報を使用するか、現在のユーザーに基づいてユーザー資格情報を決定するよう、XAR を構成できます。詳細については、「SQL の xa_open 文字列構成オプション」で「CICS と JCL のユーザー偽装」および「UserP=(T|F)」セクションを参照してください。
MFDBFH は使用しておらず、必要な XAR のいずれかがバッチ ジョブでのみ使用されますか。
その場合は、これらの XAR をバッチ専用リソースとして定めることを検討してください。これにより、大量のオーバーヘッドを省き、XAID コンパイラ指令オプションを使用した再コンパイルの必要をなくすことができます。詳細については、「SQL の xa_open 文字列構成オプション」で「BatchOnly=(T|F)」セクションを参照してください。
Enterprise Server のサービス実行プロセス (SEP) を XAR とどのように連携しますか。
CICS、IMS MPP、または IMTK の各コンテナー管理 SEP では、リージョン内の有効な各 XAR に対する接続を暗黙的に確立します。ただし、XAR 定義にBatchOnly=T が含まれている場合、これらの SEP はその XAR とは連携しません。詳細については、「SQL の xa_open 文字列構成オプション」で「BatchOnly=(T|F)」セクションを参照してください。

一般に、バッチ SEP については、バッチ アプリケーションに応じて、いくつかのバリエーションが可能な XAR 接続が明示的に提供されます。IKJEFT01 ジョブまたはその他のバッチ ユーティリティの詳細については、「メインフレーム ユーティリティのエミュレーション」を参照してください。DSNALI または DSNRLI アプリケーションの詳細については、「MVS エミュレーション」を参照してください。

IMS BMP では、使用する XAR を DFSRRC00 PARM で指定すると同様の動作が得られます。この場合、IMS BMP はその XAR にのみ接続します。それ以外の場合は、アプリケーションでリージョン内の有効な各 XAR に対する接続を暗黙的に確立します。

CRCN を XAR とどのように連携しますか。
CRCN は CICS トランザクションとして実行されるため、BatchOnly=T として定義されていないすべての有効な XAR に接続します。データベース接続の整合性を確保するために、CRCN は指定された間隔で ping を実行します。接続が失われた場合、CRCN は指定された次の間隔で再接続を試みます。CRCN は、これをオンラインのすべての SEP について行い、接続の切断によるダウンタイムを最小限に抑えます。

XAR の構成の詳細については、「エンタープライズ サーバー リージョンの XA リソース (XAR) を定義するには」を参照してください。

重要: 動的に登録された RM スイッチ モジュールを IBM DB2 または Oracle のどちらかのために使用しており、ユーザー偽装の使用を計画している場合は、アプリケーションを Enterprise Server にディプロイする前に、XAID コンパイラ指令オプションを使用してアプリケーション ソース コードを再コンパイルする必要があります。詳細については、「XAID」を参照してください。
注: 提供されている WebSphere MQ モジュールはビルドされたモジュールであり、ソース コード ファイルではありません。開発環境および実行環境の両方で使用可能です。詳細については、「WebSphere MQ」のトピックを参照してください。