注: 本トピックは、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 スイッチ モジュール タイプがサポートされています。
- SQL Server (Windows のみ)
- IBM DB2
- Oracle
- ODBC の汎用 1 フェーズ コミット
- PostgreSQL (Windows および Linux のみ)
エンタープライズ サーバー リージョン用に 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 に対する接続を暗黙的に確立します。
- XA リソース マネージャーへの接続を SEP でどのように監視しますか。
- トランザクションが起動されるたびに、各 SEP は、監視処理から除外されていない限り、すべてのアクティブな XA リソースへの接続を確認します。接続が失われた場合、XA 再接続プロセスは、指定された時間間隔で指定された回数だけ再接続を試みます。設定された回数の再試行後に接続が再確立されない場合、XA
エントリは無効になります。動的 XA を使用して、リソース マネージャーを再度有効にできます。詳細については、「Enterprise Server XA 再接続」を参照してください。
XAR の構成の詳細については、「エンタープライズ サーバー リージョンの XA リソース (XAR) を定義するには」を参照してください。
重要: 動的に登録された RM スイッチ モジュールを IBM DB2 または Oracle のどちらかのために使用しており、ユーザー偽装の使用を計画している場合は、アプリケーションを Enterprise Server にディプロイする前に、XAID コンパイラ指令オプションを使用してアプリケーション ソース コードを再コンパイルする必要があります。詳細については、「XAID」を参照してください。
注: 提供されている WebSphere MQ モジュールはビルドされたモジュールであり、ソース コード ファイルではありません。開発環境と実行環境の両方で使用可能です。詳細については、「WebSphere MQ」のトピックを参照してください。