Что означает «IsTransactional» в NServiceBus? - PullRequest
1 голос
/ 17 ноября 2011

Я создаю веб-приложение, которое собирается отправлять сообщения с помощью NServiceBus, а также записывать в базу данных. Я хочу, чтобы это была атомарная операция, т. Е. Транзакция, поэтому я обертываю код с помощью нового оператора TransactionScope ().

При настройке NServiceBus вы можете вызвать метод IsTransactional. Когда я передаю «false» этому методу, и когда «true» подходит?

1 Ответ

2 голосов
/ 17 ноября 2011

IsTransactional (true) означает, что все входящие сообщения будут обрабатываться в области транзакций

http://docs.particular.net/nservicebus/architecture/ http://docs.particular.net/nservicebus/architecture/principles

Для отправки (исходящих сообщений) вам необходимо создать собственную область транзакций, чтобы убедиться, что вы согласны с вашей базой данных. Обычно рекомендуется перенести фактическую обработку (например, запись в базу данных) на внутренние процессы. Если вы сделаете это, NServiceBus будет обрабатывать такие вещи, как повторные попытки, управление исключениями и т. Д.

Подробнее об этом здесь:

http://www.make -awesome.com / 2010/10 / почему-не-публикующие-nservicebus-сообщения-из-а-веб-приложения /

...