TransactedReceiveScope 클래스
정의
중요
일부 정보는 릴리스되기 전에 상당 부분 수정될 수 있는 시험판 제품과 관련이 있습니다. Microsoft는 여기에 제공된 정보에 대해 어떠한 명시적이거나 묵시적인 보증도 하지 않습니다.
수신한 메시지로 시작되는 트랜잭션 수명의 범위를 지정하는 활동입니다. 트랜잭션은 시작 메시지의 워크플로로 이동하거나 메시지를 수신했을 때 디스패처로 생성될 수 있습니다.
public ref class TransactedReceiveScope sealed : System::Activities::NativeActivity
[System.Windows.Markup.ContentProperty("Body")]
public sealed class TransactedReceiveScope : System.Activities.NativeActivity
[<System.Windows.Markup.ContentProperty("Body")>]
type TransactedReceiveScope = class
inherit NativeActivity
Public NotInheritable Class TransactedReceiveScope
Inherits NativeActivity
- 상속
- 특성
예제
다음 예제에서는 TransactedReceiveScope 활동에 Sequence 클래스를 사용하는 방법을 보여 줍니다.
return new Sequence
{
Activities =
{
new WriteLine { Text = "Service workflow begins." },
new System.ServiceModel.Activities.TransactedReceiveScope
{
Variables = { requestMessage, replyMessage },
Request = receive,
Body = new Sequence
{
Activities =
{
new WriteLine { Text = new InArgument<string>("Server side: Receive complete.") },
new WriteLine { Text = new InArgument<string>(new VisualBasicValue<string>() { ExpressionText = "\"Server side: Received = '\" + requestString.toString() + \"'\"" }) },
new PrintTransactionInfo(),
new Assign<string>
{
Value = new InArgument<string>("Server side: Sending reply."),
To = new OutArgument<string>(replyMessage)
},
new WriteLine { Text = new InArgument<string>("Server side: Begin reply.") },
new SendReply
{
Request = receive,
Content = SendContent.Create(new InArgument<string>(replyMessage)),
},
new WriteLine { Text = new InArgument<string>("Server side: Reply sent.") },
},
},
},
new WriteLine { Text = "Server workflow ends." },
},
};
설명
TransactedReceiveScope 활동을 사용하면 이동되는 트랜잭션의 수명 주기를 제어할 수 있습니다.
경고
시작에 대 한 TransactedReceiveScope 활동 (을 TransactedReceiveScope 포함 하는 Receive 활동과 CanCreateInstance 로 설정 true
), 런타임이 시작 실행 하기 전에 트랜잭션이 만들어집니다는 TransactedReceiveScope 활동입니다. 이 트랜잭션은 워크플로 활동 계층에서는 앰비언트가 아니지만 기본 지속성 계층에서는 앰비언트입니다. Persist 활동 전 워크플로 실행 시 TransactedReceiveScope 활동이 발견되면 런타임은 앰비언트 트랜잭션에서 유지를 시도합니다. 이 동작은 트랜잭션이 완료될 때까지 차단됩니다. 워크플로 실행이 Body 섹션에 도달하지 못하면 트랜잭션을 끝낼 수 없습니다. 이러한 교착 상태는 트랜잭션 제한 시간을 초과할 때까지 워크플로에서 응답을 중단하도록 합니다. 트랜잭션 제한 시간을 초과하면 새로 생성된 인스턴스가 중단됩니다.
중요
TransactedReceiveScope를 사용할 때마다 TransactedReceiveScope 활동 내에 워크플로의 모든 Receive를 두는 것이 좋습니다.
중요
TransactedReceiveScope를 사용할 때 메시지가 잘못된 순서로 도착하는 경우 워크플로가 순서가 잘못된 첫 번째 메시지를 전달하려고 할 때 중단됩니다. 워크플로가 유휴 상태일 때 항상 일관된 중지 지점에 있는지 확인해야 합니다. 이렇게 하면 워크플로가 중단된 경우 이전 유지 지점에서 워크플로를 다시 시작할 수 있습니다.
생성자
TransactedReceiveScope() |
TransactedReceiveScope 클래스의 새 인스턴스를 초기화합니다. |
속성
Body |
Activity 활동의 본문을 구성하는 TransactedReceiveScope를 가져오거나 설정합니다. |
CacheId |
워크플로 정의 범위 내에서 고유한 캐시의 식별자를 가져옵니다. (다음에서 상속됨 Activity) |
CanInduceIdle |
활동을 통해 워크플로가 유휴 상태가 될 수 있는지 여부를 나타내는 값을 가져오거나 설정합니다. (다음에서 상속됨 NativeActivity) |
Constraints |
Constraint에 대한 유효성 검사를 제공하도록 구성될 수 있는 Activity 작업의 컬렉션을 가져옵니다. (다음에서 상속됨 Activity) |
DisplayName |
디버깅, 유효성 검사, 예외 처리 및 추적에 사용되는 선택적 이름을 가져오거나 설정합니다. (다음에서 상속됨 Activity) |
Id |
워크플로 정의 범위에서 고유한 식별자를 가져옵니다. (다음에서 상속됨 Activity) |
Implementation |
작업의 실행 논리입니다. (다음에서 상속됨 NativeActivity) |
ImplementationVersion |
작업의 구현 버전을 가져오거나 설정합니다. (다음에서 상속됨 NativeActivity) |
Request |
이 Receive 활동과 연결된 TransactedReceiveScope 활동을 가져오거나 설정합니다. |
Variables |
이 Variable와 연결된 TransactedReceiveScope 컬렉션을 가져옵니다. |