WS-AtomicTransaction の使用
WS-AtomicTransaction (WS-AT) は、相互運用が可能なトランザクション プロトコルです。 Web サービス メッセージを使用して分散トランザクションをフローできるようにすると共に、異種のトランザクション インフラストラクチャ間で相互運用できるように調整します。 WS-AT では、2 フェーズ コミット プロトコルを使用して、分散アプリケーション、トランザクション マネージャー、およびリソース マネージャー間でアトミックな結果を実現します。
Windows Communication Foundation (WCF) で提供される WS-AT 実装には、Microsoft 分散トランザクション コーディネーター (MSDTC) トランザクション マネージャーに組み込まれているプロトコル サービスが含まれています。 WS-AT を使用することにより、WCF アプリケーションでは、サードパーティのテクノロジを使用して構築された相互運用可能な Web サービスを含む、他のアプリケーションにトランザクションをフローさせることができます。
クライアント アプリケーションとサーバー アプリケーション間でトランザクションをフローさせるときに使用されるトランザクション プロトコルは、クライアントが選択したエンドポイントでサーバーが公開するバインディングによって決定されます。 WCF システム指定のバインディングには、トランザクションの伝達形式として OleTransactions
プロトコルを既定で指定するものと、WS-AT を既定で指定するものがあります。 特定のバインディング内部でのトランザクション プロトコルの選択は、プログラムによって変更することもできます。
プロトコルの選択は、次の内容に影響を与えます。
トランザクションをクライアントからサーバーにフローさせるために使用されるメッセージ ヘッダーの形式。
トランザクションの結果を解決するために、クライアントのトランザクション マネージャーとサーバーのトランザクション マネージャーの間で 2 フェーズ コミット プロトコルを実行するために使用されるネットワーク プロトコル。
サーバーとクライアントが WCF を使用して記述されている場合、WS-AT を使用する必要はありません。 その代わりに、NetTcpBinding
プロトコルを使用する TransactionFlow
属性を有効にして OleTransactions
の既定の設定を使用できます。 詳細については、「<netTcpBinding>」を参照してください。 ただし、サードパーティのテクノロジで構築された Web サービスにトランザクションをフローさせる場合は、WS-AT を使用する必要があります。