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 в действии 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.
Важно!
Если используется область TransactedReceiveScope, а сообщения поступают в неверном порядке, рабочий процесс будет прерван при попытке доставки первого сообщения, пришедшего в неправильном порядке. Убедитесь, что рабочий процесс всегда находится в согласованном состоянии при освобождении рабочего процесса. Это позволит перезапустить рабочий процесс с прежней сохраненной точки в случае, если он был прерван.
Конструкторы
TransactedReceiveScope() |
Инициализирует новый экземпляр класса TransactedReceiveScope. |
Свойства
Body |
Возвращает или задает объект Activity, представляющий текст действия TransactedReceiveScope. |
CacheId |
Возвращает идентификатор кэша, уникальный в пределах области определения рабочего процесса. (Унаследовано от Activity) |
CanInduceIdle |
Возвращает или задает значение, указывающее, может ли действие вызывать простой рабочего процесса. (Унаследовано от NativeActivity) |
Constraints |
Возвращает коллекцию действий Constraint, которые можно настроить для выполнения проверки the 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() |
Возвращает значение типа String, которое содержит Id и DisplayName для Activity. (Унаследовано от Activity) |
UpdateInstance(NativeActivityUpdateContext) |
Обновляет экземпляр NativeActivity. (Унаследовано от NativeActivity) |