2012-03-22 3 views
1

클라이언트 - 서버 응용 프로그램이 있습니다. 클라이언트는 .NET 4.0 앱입니다. 서버는 Stateless WCF (.NET 4.0) 서비스입니다. WCF 서비스는 SQL Server 2005 데이터베이스에서 일부 CRUD를 수행합니다. WCF는 트랜잭션을 지원하도록 구성됩니다. 확장 성을 위해 서비스는 stateless이어야합니다. 여러 물리적 컴퓨터에 WCF 서비스 인스턴스가 여러 개 있습니다. 로드 밸런서 뒤에 있습니다. 우리는 클라이언트의 다음 코드가있는 경우 :로드 균형 조정을 사용하는 WCF 분산 트랜잭션

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

    scope.Complete(); 
} 

이 두 서비스 요청을 WCF 서비스의 다른 인스턴스에 의해 제공 될 수있다. 이러한 거래가 적절한 방법으로 작동합니까?

답변

2

제대로 작동해야합니다. 트랜잭션의 2 단계 커밋은 동일한 부하 분산 장치 아래에 있는지 여부에 관계없이 다른 시스템에서 작동해야합니다.

+0

감사합니다. 당신 말이 맞아요. 프로토 타입 (클라이언트 1 개,로드 밸런서 뒤에 2 개의 서버)을 만들었으며 모든 것이 정상입니다. OleTx 대신 WS-Atomic을 사용할 때 문제가 발생합니다. SSL이 필요하며 서버가 부하 분산 장치 뒤에있을 때 WCF 구성이 정교합니다. 하지만 지금 OleTx는 나를 위해 충분합니다. –

관련 문제