IBM Data Server Driver for JDBC and SQLJ によるシスプレックスの XA サポート

WebSphere® Application Server および IBM Data Server Driver for JDBC and SQLJ DRDAがサポートするXAプロトコルを使用して、分散トランザクションを調整するために使用することができます。

このタイプの XA サポートは、単一トランスポート処理モデルを使用するトランザクション・マネージャーでのみ使用可能です。 単一トランスポート・モデルでは、単一トランスポート (物理接続) 上のトランザクションは xa_start から xa_end までメンバーに結合されます。 トランザクション終了の直後に、xa_prepare(readonly) か、xa_prepare と xa_commit または xa_rollback か、あるいは xa_rollback が続きます。 このすべてが単一のアプリケーション・プロセス内で行われなければなりません。 このモデルを使用するトランザクションマネージャーの例としては、 IBM WebSphere Application Server があります。

単一トランスポート処理モデルに関するサポートには、xa_recover によって各リカバリー可能トランザクションのメンバー情報が検索される、未確定トランザクション・リカバリーも含まれます。その場合、指定されたメンバーに xa_commit または xa_rollback を指し向けることができます。

重要: グローバルトランザクションが実行される場合、それらのブランチが同じデータ共有メンバー上で実行されている場合にのみ、グローバルトランザクションのブランチ間でロックが共有されます。 Sysplex ワークロード・バランシングが有効にされている場合、すべてのブランチが同じデータ共用メンバー上で実行されている保証はありません。 その結果、グローバル・トランザクションおよび Sysplex ワークロード・バランシングを使用するアプリケーションでは、デッドロックやタイムアウトが発生する可能性があります。

クライアント・アプリケーションで XA サポートを使用するには、動的仮想 IP アドレスをセットアップする必要があります。 動的 IP アドレスは、Db2グループ用に構成する必要があり、グループ内のDb2メンバーごとに 1 つのアドレスをセットアップする必要があります。 障害発生後にどのメンバーで処理される XA リカバリーに関しても、未確定 XID の情報を SCA から入手する 必要があります。 SCA には、グループ全体の未確定 XID のリストだけでなく、各メンバーの DVIPA および未確定スレッドを所有するメンバーの再同期ポートが含まれます。 XA リカバリーは、グループ全体に対するすべての準備されたスレッドのリスト、または発見的手法でコミットされたスレッドのリストを、XA トランザクション・マネージャー (TM) に戻します。 この IBM Data Server Driver for JDBC and SQLJ XA TMが回復した際に、その情報を使用してコミットの決定を所有するメンバーに送信し、疑わしいXIDをコミットまたはロールバックします。

リカバリプロセスを正しく機能させるには、グループDVIPAを設定する必要があります。 次の図は、上述の XA 復旧プロセスがどのように機能するかを示しています。 システム障害の後、XA リカバリー処理では、グループに戻すために XA XID で特定される未確定トランザクションのリストが必要です。 この例では、メンバー DB1G に障害が発生した場合に DB1G は未確定スレッドを残します。 DB1G メンバーのログには、スレッドの状態が関連した XID と共に含まれます。 SCA にあるグループの XA 未確定リストには DB1G 未確定スレッド XID も、含まれます。 WebSphere がシステム障害から復旧しようとすると、 IBM Data Server Driver for JDBC and SQLJ グループの任意のメンバーに XA Recover コマンドを送信します。 その後、メンバーは、SCA の XA 未確定リストを読み取り、そのグループの未確定 XID のリストを戻します。 WebSphere が疑わしいスレッドをコミットまたはロールバックすると、 IBM Data Server Driver for JDBC and SQLJ 決定をメンバーの DB1G に送信し、 が疑わしいスレッドを解決します。
図1: XA リカバリー処理
図の説明の開始 XAの回復プロセスは、Windowsクライアント、SCA結合機能上で実行され、XIDは疑いようがありません。 図の説明の終わり。