Как NServiceBus обрабатывает транзакции?

Пытается ли NServiceBus автоматически повторно доставить сообщения, если обработка не удалась? И если да, то есть ли ограничение на количество попыток доставки?


person Cantrell    schedule 22.10.2010    source источник


Ответы (1)


NSB зарегистрируется в распределенной транзакции, и в случае неудачи повторит настроенное количество раз. Посмотрите раздел конфигурации MsmqTransport.

РЕДАКТИРОВАТЬ: Распределенная транзакция начинается, как только вы просматриваете или получаете сообщение от MSMQ. Вся работа, которую вы выполняете в обработчике сообщений, будет включена в транзакцию и управляется координатором распределенных транзакций. . DTC также будет включать такие вещи, как транзакции БД, если вы обновляете БД и так далее.

Если, скажем, обновление БД не удается, все откатывается, и сообщение возвращается в очередь.

person Adam Fyles    schedule 22.10.2010
comment
Не могли бы вы уточнить, что NSB считает «распределенной транзакцией»? Например, ActiveMQ может упаковывать все входящие и исходящие сообщения в один сеанс, который является транзакционным. - person Cantrell; 26.10.2010