Поделиться через


Область сопровождения транзакции

Данный раздел относится к версии Windows Workflow Foundation 4.

В этом образце демонстрируется создание шаблона обмена сообщениями Parallel Convoy совместно с TransactedReceiveScope для моделирования протокола, при котором несколько операций могут выполняться в любом порядке в рамках одной транзакции. Также в этом образце показано, как класс TransactedReceiveScope автоматически создает новую транзакцию, если транзакция не была передана серверу, и клиент не смог воспользоваться какими-либо транзакциями.

Образец включает два проекта рабочих процессов, которые представляют клиент и сервер. Проект клиента запускает рабочий процесс, который начинается с отправки сообщения для загрузки рабочего процесса сервера, инициализирующего корреляцию и область транзакций для оставшихся действий по отправке и получению сообщений. Клиентское действие Sequence содержит исходную пару Send и ReceiveReply и далее — действие Parallel с тремя ответвлениями. Каждое ответвление отправляет на сервер одностороннее сообщение. Свойство CompletionCondition действия Parallel устанавливается в значение false, таким образом, выполняются все три ответвления.

Серверный рабочий процесс похож на клиентский рабочий процесс, за исключением действий отправки и получения сообщений, которые направлены в сторону сервера и содержатся в действии TransactedReceiveScope, за счет чего вся работа выполняется в одной транзакции. Когда сервер получает первое сообщение, создается транзакция, которая становится внешней для области TransactedReceiveScope, благодаря чему любое действие в этой области может получить доступ к транзакции. После этого все действия получения выполняются параллельно. Все действия получения должны быть выполнены строго один раз, в соответствии с условием завершения для параллельного действия. Неявная точка сохранения существует в конце области TransactedReceiveScope, при этом операция сохранения также выполняется в рамках той же транзакции.

Использование этого образца

  1. Откройте файл решения ParallelConvoySample.sln в среде Visual Studio 2010.

  2. Чтобы построить решение, нажмите клавишу F6.

  3. Убедитесь, что оба проекта готовы к запуску.

    1. В окне Обозреватель решений щелкните правой кнопкой мыши решение и выберите пункт Назначить запускаемые проекты.

    2. Выберите вариант Несколько запускаемых проектов и убедитесь, что для обоих проектов задано действие Запустить.

  4. Чтобы запустить решение, нажмите клавиши CTRL+F5.

    Сервер отобразит сообщение Server is running, указывающее, что сервер готов.

    Нажмите любую клавишу в окне консоли клиента, чтобы запустить образец.

Dd744846.Important(ru-ru,VS.100).gif Примечание
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).

<диск_установки>:\WF_WCF_Samples

Если этот каталог не существует, перейдите на страницу Образцы Windows Communication Foundation (WCF) и Windows Workflow Foundation (WF) для .NET Framework 4, чтобы загрузить все образцы Windows Communication Foundation (WCF) и WF. Этот образец расположен в следующем каталоге.

<диск_установки>:\WF_WCF_Samples\WF\Scenario\Transactions\TransactedConvoyScope