WS-AtomicTransaction – モバイル アプリケーション、Web サービス、SOA アーキテクチャの開発 - テクノロジー
コンテンツにスキップ

WS-AtomicTransaction – モバイル アプリケーション、Web サービス、SOA アーキテクチャの開発

広告

WS-AtomicTransaction (WS-AT) は、相互運用可能なトランザクション プロトコルです。これにより、Web サービス メッセージングの使用を通じて分散トランザクション フローが可能になり、異種トランザクション インフラストラクチャ間で相互運用可能に調整されます。 WS-AT は、2 フェーズ実行プロトコルを使用して、分散アプリケーション、トランザクション マネージャー、およびリソース マネージャーの間でアトミックな結果を作成します。

Windows Communication Foundation (WCF) で提供される WS-AT の実装には、Microsoft Distributed Transaction Coordinator (MSDTC) トランザクション マネージャーと統合されたプロトコル サービスが含まれています。 WCF アプリケーションは、サードパーティのテクノロジを使用して構築された相互運用可能な Web サービスなど、WS-AT を介して他のアプリケーションにトランザクションを送信できます。

クライアント アプリケーションとサーバー アプリケーションの間でトランザクションが流れる場合、使用されるトランザクション プロトコルは、サーバーが選択したクライアント エンドポイントで公開するバインディングによって決まります。 WCF に提供されるバインディングの中には、デフォルトでトランザクション伝播形式として OleTransactions プロトコルを指定するものもありますが、デフォルトで WS-AT 仕様を使用するものもあります。特定の接続内のトランザクション プロトコルの選択をプログラムで変更することもできます。

プロトコルの選択は以下に影響します。

  • クライアントからサーバーにトランザクションをフローするために使用されるメッセージ ヘッダーの形式。
  • トランザクション結果を解決するために、クライアント トランザクション マネージャーとサーバー トランザクションの間で 2 フェーズ実行プロトコルを実行するために使用されるネットワーク プロトコル。

サーバーとクライアントが WCF を使用して作成されている場合は、WS-AT を使用する必要はありません。代わりに、TransactionFlow 属性を有効にして、OleTransactions プロトコルを使用するデフォルトの NetTcpBinding 構成を使用できます。

この仕様では、アトミック トランザクション用の次のプロトコルを定義します。

結論: 終了プロトコルは確認プロセスを開始します。各プロトコルの登録参加者に基づいて、コーディネーターは 2PC Volatile から開始し、2PC Durable まで進みます。最終結果は開始者に通知されます。

2 フェーズ コミットメント (2PC): 2PC プロトコルは、登録された参加者を調整して確認またはキャンセルの決定を下し、すべての参加者に最終結果が確実に通知されるようにします。 2PC プロトコルには 2 つのバリエーションがあります。

  • 揮発性 2PC: キャッシュなどの揮発性リソースを管理する参加者は、このプロトコルに登録する必要があります。
  • 耐久性のある2PC: データベースなどの永続リソースを管理する参加者は、このプロトコルに登録する必要があります。

参加者は、複数の登録メッセージを送信することで、これらのプロトコルの複数に登録できます。