TransactedReceiveScope クラス

定義

受信したメッセージによって開始されるトランザクションの有効期間を制御するアクティビティです。 トランザクションは、開始メッセージでワークフローにフローすることも、メッセージの受信時にディスパッチャーが作成することも可能です。

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
属性

次の例では、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が にtrue設定されたアクティビティをReceive含む ) の場合、ランタイムがアクティビティCanCreateInstanceの実行を開始する前にトランザクションがTransactedReceiveScope作成されます。 このトランザクションはワークフロー アクティビティ レイヤーではアンビエントではありませんが、基になる永続性レイヤーではアンビエントです。 ワークフローの実行で、Persist アクティビティより前に TransactedReceiveScope アクティビティが検出されると、ランタイムはアンビエント トランザクションで永続化を試行します。 この動作により、トランザクションが完了するまでブロックが生じます。 ワークフローの実行が Body セクションに到達していないため、トランザクションは終了できません。 このデッドロックにより、トランザクションがタイムアウトするまでワークフローの応答が停止します。トランザクションがタイムアウトすると、新しく作成されたインスタンスが中止されます。

重要

TransactedReceiveScope を使用する場合は、ワークフロー内のすべての受信を TransactedReceiveScope アクティビティに配置することをお勧めします。

重要

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 のコレクションを取得します。

メソッド

Abort(NativeActivityAbortContext)

派生クラスで実装された場合、中止中のアクティビティに反応してアクションを実行します。

(継承元 NativeActivity)
CacheMetadata(ActivityMetadata)

実装されていません。 代わりに、CacheMetadata(NativeActivityMetadata) メソッドを使用してください。

(継承元 NativeActivity)
CacheMetadata(NativeActivityMetadata)

アクティビティの引数、変数、子アクティビティ、およびアクティビティ デリゲートの記述を作成および検証します。

(継承元 NativeActivity)
Cancel(NativeActivityContext)

派生クラスで実装された場合、ロジックを実行してアクティビティを早期に正常に完了します。

(継承元 NativeActivity)
Equals(Object)

指定されたオブジェクトが現在のオブジェクトと等しいかどうかを判断します。

(継承元 Object)
Execute(NativeActivityContext)

派生クラスで実装された場合、アクティビティの実行ロジックを実行します。

(継承元 NativeActivity)
GetHashCode()

既定のハッシュ関数として機能します。

(継承元 Object)
GetType()

現在のインスタンスの Type を取得します。

(継承元 Object)
MemberwiseClone()

現在の Object の簡易コピーを作成します。

(継承元 Object)
OnCreateDynamicUpdateMap(NativeActivityUpdateMapMetadata, Activity)

動的な更新のマップを作成するとイベントが発生します。

(継承元 NativeActivity)
OnCreateDynamicUpdateMap(UpdateMapMetadata, Activity)

動的な更新のマップを作成するとイベントが発生します。

(継承元 NativeActivity)
ShouldSerializeDisplayName()

DisplayName プロパティをシリアル化する必要があるかどうかを示します。

(継承元 Activity)
ToString()

StringId および DisplayName を含む Activity を返します。

(継承元 Activity)
UpdateInstance(NativeActivityUpdateContext)

NativeActivity のインスタンスを更新します。

(継承元 NativeActivity)

適用対象