NServiceBus中的“IsTransactional”是什么意思?

时间:2011-11-17 14:23:34

标签: transactions nservicebus

我正在创建一个使用NServiceBus 发送消息的Web应用程序,并且还要写入数据库。我希望这是一个原子操作,即一个事务,所以我将代码包装在一个使用新的TransactionScope()语句中。

配置NServiceBus时,您可以调用IsTransactional方法。我何时将'false'传递给此方法,何时'true'适合?

1 个答案:

答案 0 :(得分:2)

IsTransactional(true)表示所有传入消息都将在transactioncope中处理

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

对于发送(外发邮件),您需要创建自己的事务范围,以确保您与数据库保持一致。通常,将实际处理(如写入数据库)移动到后端进程是个好主意。如果你这样做,NServiceBus将为你处理诸如重试,异常管理等事情。

更多相关信息:

http://www.make-awesome.com/2010/10/why-not-publish-nservicebus-messages-from-a-web-application/