이 항목은 Windows Workflow Foundation 4에 적용됩니다.
이 샘플에서는 TransactedReceiveScope와 함께 Parallel Convoy 메시징 활동 패턴을 만들어 많은 작업이 모두 같은 트랜잭션에서 순서에 관계없이 발생할 수 있는 프로토콜을 모델링하는 방법을 보여 줍니다. 또한 트랜잭션이 서버로 이동되지 않는 경우TransactedReceiveScope가 자동으로 새 트랜잭션을 만들어 클라이언트가 어떤 트랜잭션도 사용하지 않도록 하는 방법도 보여 줍니다.
이 샘플은 클라이언트와 서버를 나타내는 두 개의 워크플로 프로젝트로 구성되어 있습니다. 클라이언트 프로젝트는 서버 워크플로를 부트스트랩하는 메시지를 보내 시작되는 워크플로를 실행하며, 이 워크플로는 상관 관계를 초기화하고 나머지 메시징 활동에 대해 트랜잭션 범위를 시작합니다. 클라이언트 Sequence 활동에는 Send 및 ReceiveReply 쌍과 세 분기가 있는 Parallel 활동이 포함되어 있습니다. 각 분기는 서버에 단방향 메시지를 보냅니다. Parallel 활동의 CompletionCondition 속성은 세 분기가 모두 완료되도록 false로 설정됩니다.
서버 워크플로는 클라이언트 워크플로와 비슷하지만 서버 워크플로의 경우에는 메시징 활동이 통신의 서버측을 향하고, 수행되는 모든 작업이 같은 트랜잭션에서 실행되도록 메시징 활동이 TransactedReceiveScope 활동 내에 포함되어 있습니다. 서버에서 첫 번째 메시지를 받으면 트랜잭션이 만들어지고 이 트랜잭션이 TransactedReceiveScope 본문 범위의 앰비언트 트랜잭션이 되어 이 범위 내의 모든 활동이 해당 트랜잭션에 액세스할 수 있습니다. 그러면 받는 메시지가 모두 병렬로 실행됩니다. 받는 메시지는 모두 병렬 활동의 완료 조건에 설명되어 있는 것처럼 한 번만 실행되어야 합니다. TransactedReceiveScope 본문의 끝에 암시적 유지 지점이 있으며 지속성 작업도 같은 트랜잭션에서 실행됩니다.
이 샘플을 사용하려면
Visual Studio 2010을 사용하여 ParallelConvoySample.sln 솔루션 파일을 엽니다.
F6 키를 눌러 솔루션을 빌드합니다.
두 프로젝트 모두 시작되도록 설정되어 있는지 확인합니다.
솔루션 탐색기에서 솔루션을 마우스 오른쪽 단추로 클릭하고 시작 프로젝트 설정을 선택합니다.
여러 개의 시작 프로젝트를 선택하고 두 프로젝트의 동작이 시작으로 설정되어 있는지 확인합니다.
Ctrl+F5를 눌러 솔루션을 실행합니다.
서버에서
Server is running이라고 출력되고 이는 서버가 준비되었음을 나타냅니다.클라이언트 콘솔 창에서 아무 키나 눌러 샘플을 시작합니다.
참고: |
|---|
컴퓨터에 이 샘플이 이미 설치되어 있을 수도 있습니다. 계속하기 전에 다음(기본) 디렉터리를 확인하십시오.
<InstallDrive>:\WF_WCF_Samples
이 디렉터리가 없으면 Windows Communication Foundation (WCF) and Windows Workflow Foundation (WF) Samples for .NET Framework 4로 이동하여 WCF(Windows Communication Foundation) 및 WF 샘플을 모두 다운로드하십시오. 이 샘플은 다음 디렉터리에 있습니다.
<InstallDrive>:\WF_WCF_Samples\WF\Scenario\Transactions\TransactedConvoyScope
|
참고: