HTTP バインディングコンポーネントは、Tango (WSIT) を介して使用できる WS-Atomic Transaction の実装である、WS-Transaction と統合されています。WS-AtomicTransaction 仕様は、2 フェーズのコミットプロトコルを定義して、トランザクションがすべて完了するか、そうでない場合はすべてロールバックされることを保証します。これは「オールオアナッシング」とも呼ばれます。トランザクションが成功したかどうかに応じて、登録されているトランザクション参加者はコミットまたは中止を決定します。両方の参加者に最終結果が通知されます。
SoapWSATCompositeApp サンプル複合アプリケーション
HTTP バインディングコンポーネントおよび BPEL サービスエンジンでの WS-Transaction の使用方法を示すサンプル複合アプリケーションについては、HTTP BC AtomicTransactions を参照してください。
サンプルでは、次の内容が示されています。
既存の Java Transaction API (JTA) を使用してトランザクションを開始および完了する。
トランザクション Web サービスオペレーションの呼び出しフローの、クライアントから Web サービスへのトランザクションコンテキスト。
Web サービスクライアントから HTTP/SOAP バインディングコンポーネントへの、トランザクションコンテキストのインポート。
HTTP/SOAP バインディングコンポーネントから BPEL サービスエンジンへの、および、BPEL サービスエンジンから HTTP/SOAP バインディングコンポーネントへの、トランザクションの伝達。
HTTP/SOAP バインディングコンポーネントから Web サービスへの、トランザクションコンテキストフローの再開。
クライアントによって作成されたトランザクションで更新される持続リソースは、単一の原子トランザクションとしてすべてコミットされるかロールバックされます。
クライアント側のコードが JTA トランザクションをコミットまたは中止したあと、クライアントはトランザクション Web サービスに対して確認メソッドを呼び出すことによって、トランザクション内のすべてのオペレーションが成功または失敗したことを確認します。