トランザクション フローを使用するときに、WCF がクライアントとサーバーの両方で MSDTC を構成して開始する必要があるのはなぜだろうか。(ネットワーク アクセスが有効になっている場合)
結局のところ、WCF のトランザクションは、WsAtomicTransaction を使用して SOAP メッセージを介して管理されます。では、一体なぜ、2 つの DTC が相互に通信する必要があるのでしょうか。
ご返信ありがとうございます。
トランザクション フローを使用するときに、WCF がクライアントとサーバーの両方で MSDTC を構成して開始する必要があるのはなぜだろうか。(ネットワーク アクセスが有効になっている場合)
結局のところ、WCF のトランザクションは、WsAtomicTransaction を使用して SOAP メッセージを介して管理されます。では、一体なぜ、2 つの DTC が相互に通信する必要があるのでしょうか。
ご返信ありがとうございます。
はい、WCF は、必要に応じて WS-AtomicTransactions を使用できますし、使用する予定です。ほとんどの場合、相互運用性のシナリオ (非 .NET クライアントまたはサービス) で使用されます。
しかし、多くの場合、相互運用性には (パフォーマンス) の代償が伴います。クライアントとサービスがすべて Windows ベースである場合、WCF は OleTransactions (耐久性のあるストアが 1 つだけの単純なケースでは OleTx) または MS-DTC (より多くの場合) を使用することを選択します。複数の永続ストアが関与する高度なシナリオ) - パフォーマンスと単純さの理由から。
したがって、WCF自体は MS-DTCを必要としませんが、Windows のみのシナリオでは、WCF (およびあなた) が MS-DTC の恩恵を受けることができます。