2 フェーズ コミット トランザクションの処理

このトピックでは、COM+、トランザクション インテグレーター (TI)、CICS で Microsoft 分散トランザクション コーディネーター (DTC) によって処理されている間の 2 フェーズ コミット (2PC) トランザクションの動作について説明します。

このプロセスは、クライアント アプリケーションが TI オブジェクトを含む .NET アプリケーションでメソッドを呼び出したときに開始されます。 その後、.NET はユーザー スレッド プールからトランザクションのスレッドを割り当て、トランザクションを開始し、メソッドの入力パラメーターを TI ランタイム環境に渡します。 このスレッドは、応答が CICS ホストから戻るまで、トランザクションに対してブロックされます。 これは作業時間の単位であり、主に CICS アプリケーションがトランザクションのビジネス ロジックを処理し、必要に応じてデータベースにアクセスするのにかかる時間で構成されます (伝送速度が LAN 速度に追いついていると仮定)。 メソッドの出力パラメーターがホストから .NET に送り返されると、コミット メッセージは DTC に送信されます。

DTC はトランザクションの準備フェーズをアクティブ化し、TI は 2PC スレッド プールからスレッドを割り当て、要求がホストから到着するまでブロックコミット メッセージ保持します。 トランザクションのすべてのフォークが準備されると、DTC はコミット完了メッセージを .NET に送信し、メソッドの出力パラメーターを送信し、値を呼び出し元のクライアント アプリケーションに戻してスレッドを解放します。

これでユーザーのトランザクションは完了しますが、トランザクション モニター (DTC と CICS) はコミットの 2 番目のフェーズを完了する必要があります。もう一度、コミットの 2 番目のフェーズを実行するトランザクションごとに TI 2PC スレッド プールからのスレッドが割り当てられます。

参照

長時間実行されるトランザクション プログラム
トランザクション インテグレーター パフォーマンス ガイド