Область сопровождения транзакции
Данный раздел относится к версии Windows Workflow Foundation 4.
В этом образце демонстрируется создание шаблона обмена сообщениями Parallel Convoy совместно с TransactedReceiveScope для моделирования протокола, при котором несколько операций могут выполняться в любом порядке в рамках одной транзакции. Также в этом образце показано, как класс TransactedReceiveScope автоматически создает новую транзакцию, если транзакция не была передана серверу, и клиент не смог воспользоваться какими-либо транзакциями.
Образец включает два проекта рабочих процессов, которые представляют клиент и сервер. Проект клиента запускает рабочий процесс, который начинается с отправки сообщения для загрузки рабочего процесса сервера, инициализирующего корреляцию и область транзакций для оставшихся действий по отправке и получению сообщений. Клиентское действие Sequence содержит исходную пару Send и ReceiveReply и далее — действие Parallel с тремя ответвлениями. Каждое ответвление отправляет на сервер одностороннее сообщение. Свойство CompletionCondition действия Parallel устанавливается в значение false, таким образом, выполняются все три ответвления.
Серверный рабочий процесс похож на клиентский рабочий процесс, за исключением действий отправки и получения сообщений, которые направлены в сторону сервера и содержатся в действии TransactedReceiveScope, за счет чего вся работа выполняется в одной транзакции. Когда сервер получает первое сообщение, создается транзакция, которая становится внешней для области TransactedReceiveScope, благодаря чему любое действие в этой области может получить доступ к транзакции. После этого все действия получения выполняются параллельно. Все действия получения должны быть выполнены строго один раз, в соответствии с условием завершения для параллельного действия. Неявная точка сохранения существует в конце области TransactedReceiveScope, при этом операция сохранения также выполняется в рамках той же транзакции.
Использование этого образца
Откройте файл решения ParallelConvoySample.sln в среде Visual Studio 2010.
Чтобы построить решение, нажмите клавишу F6.
Убедитесь, что оба проекта готовы к запуску.
В окне Обозреватель решений щелкните правой кнопкой мыши решение и выберите пункт Назначить запускаемые проекты.
Выберите вариант Несколько запускаемых проектов и убедитесь, что для обоих проектов задано действие Запустить.
Чтобы запустить решение, нажмите клавиши CTRL+F5.
Сервер отобразит сообщение
Server is running
, указывающее, что сервер готов.Нажмите любую клавишу в окне консоли клиента, чтобы запустить образец.
Примечание |
---|
Образцы уже могут быть установлены на компьютере. Перед продолжением проверьте следующий каталог (по умолчанию).
<диск_установки>:\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
|