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 スレッド プールのスレッドが割り当てられる必要があります。

参照

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