最終参加者サポートにより、 同一のグローバル・トランザクションの中で 1 つの 1 フェーズ・コミット対応リソースを、 任意の数の 2 フェーズ・コミット対応リソースとともに使用できます。同一のトランザクション内で 1 フェーズ・コミット・リソースを含む複数の対話が可能ですが、そのようなリソースを関与させることができるのは 1 つだけです。
トランザクションのコミット時には、2 フェーズ・コミット・プロトコルを使用して、2 フェーズ・コミットのリソースがまず準備され、これが正常に完了したら、次に 1 フェーズ・コミットのリソースが呼び出されてコミットされます。 次に、1 フェーズ・コミットのリソースの応答に応じて、 2 フェーズ・コミットのリソースが、コミットされるかまたはロールバックされます。
このシナリオでは、最終参加者サポートは、同一トランザクション内の 1 フェーズ・コミット対応リソースと任意の数の 2 フェーズ・コミット対応リソースを調整 することができます。
このシナリオでは、通常、トランザクションはコミットすることができません。 トランザクション従属サーバーでリスト化されている 1 フェーズ・コミット・リソース を (グローバル・トランザクションの一部として) コミットできるようにするために、 トランザクション・サービスは、トランザクション・ルートから従属サーバーに 調整の責任を委任する必要があります。 このことは、トランザクション・ルート・サーバーに登録されている リソースが他にない場合にだけ発生します。
最終参加者サポートによって、トランザクションへのヒューリスティックの結果のリスクが増大します。 すなわち、トランザクション・マネージャーは、すべてのリソースが同じ方向で (コミットまたは ロールバックのいずれか) 完了したのかどうかが分からなくなくなります。この理由から、 アプリケーションで同一のトランザクション内の 1 フェーズ・コミット対応リソースと 2 フェーズ・コミット対応リソース へのアクセスを調整できるようにするには、 ヒューリスティックの結果のリスクが増大することを受け入れるようにアプリケーションを構成します。
ヒューリスティックの結果は、トランザクション・サービス (JTS) が 1 フェーズ・コミット・リソースに対して行った 1 フェーズ・コミットのフローからの応答を受信しない場合に発生します。この状態では、 トランザクション・サービスは、1 フェーズ・コミット・リソースの変更がコミットされたのかロールバックされたのかを 判別できず、そのため、グローバル・トランザクションの結果が正しくても、それを信頼して他の 2 フェーズ・コミット・ リソースに対して適用することができません。