Транзакции в MSMQ, паттерны сообщений
От: снежок Россия  
Дата: 04.10.06 05:51
Оценка:
Есть процесс, который посылает в виде сообщения некоторую задачу на исполнение.

Задача должна быть разбита на части и эти части должны быть обработаны разными сервисами, поэтому она направляется Observer-у для разделения и распределения.

Observer получает основное сообщение, разбивает его на две части, предполагающих параллельное выполнение и направляет уже 2-а сообщения на свободные сервисы.

Свободные сервисы достают поступившие сообщения из своей очереди, обрабатывают их и направляют обратно Observer-у сообщение-ответ об успешном или неуспешном выполнении части задания.

Observer производит аггрегацию ответных сообщений.
Если все ответные сообщения сигнализируют об успешном выполнении задача считается выполненной, если хотя бы одно ответное сообщение сигнализирует об ошибке всё задание считается невыполненным и должн произвестись откат.

Q:
1. Я так понимаю, в данной ситуации, если при выполнении части задания (задания длительные) происходит сохранение в БД, то действия по откату придется реализовывать вручную? Т.е. хранить в базе у объектов флаг-состояние — сохранен он или нет.
2. Есть ли какие то стандартные способы натянуть транзакционность на систему сообщений?
3. Интересуют также паттерны по аггрегации, паттерны-адаптеры и прочие для сообщений MSMQ
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.