2012-03-22 21 views
1

私はクライアントサーバーアプリケーションを持っています。クライアントは.NET 4.0アプリケーションです。サーバーはステートレスWCF(.NET 4.0)サービスです。 WCFサービスはSQL Server 2005データベースでCRUDを実行します。 WCFはトランザクションをサポートするように構成されています。サービスはスケーラビリティのためにステートレスでなければなりません。 異なる物理マシンにWCFサービスのインスタンスがいくつかあります。それらはロードバランサの後ろにあります。 私たちはクライアントの次のコードをお持ちの場合:ロードバランシングを伴うWCF分散トランザクション

using (var scope = new TransactionScope()) 
{ 
    var proxy1 = new WCFServiceProxy(); 
    proxy.DoSomeDBStuff1(); 
    proxy.DoSomeDBStuff2(); 

    scope.Complete(); 
} 

をこれら2つのサービス要求はWCFサービスの異なるインスタンスがサービスを提供することができます。これらの取引は適切な方法で行われますか?

答えて

2

正常に動作するはずです。トランザクションの2フェーズコミットは、同じロードバランサの下にあるかどうかにかかわらず、異なるマシン間で動作する必要があります。

+0

ありがとうございます!あなたが正しいです。私はプロトタイプを作成しました(クライアント1台、ロードバランサの後ろに2台のサーバ)、すべてがOKです。問題は、OleTxの代わりにWS-Atomicを使用しようとしたときに現れています。SSLが必要であり、サーバーがロードバランサの背後にある場合、WCFの設定は洗練されています。しかし今、OleTxは私のために十分です。 –

関連する問題