MassTransit Saga - 错误&不一致性

时间:2012-09-28 09:36:44

标签: rabbitmq messaging servicebus masstransit saga

我已经实现了一个很有效的masstransit传奇。但是,有时消息会进入错误队列或者似乎消失。我正在使用RabbitMQ。

我想知道: 1.如何获取导致消息进入错误队列的原因/异常消息? (注意:我的处理程序逻辑位于try-catch块中,因此显然这些错误甚至在调用处理程序逻辑之前就会发生) 2.什么可能导致丢失的消息?

提前致谢。

1 个答案:

答案 0 :(得分:6)

我似乎已经想到了这一点:要获得例外,配置NLog(或log4Net),添加对相应NLogIntegration库的引用,最后在服务总线的初始化中,包括sbc.UseNLog(); (对于NLog)。似乎没有在线文档涵盖这一点。不得不通过查看NLogIntegration库的方法来弄明白。

在发送到错误队列的消息问题上,错误消息是“消息重试限制超出了rabbitmq:// localhost / workers_sagas:08cf6e3e-d772-e62b-1803-73779fa60000”。显然,这是因为我使用了内存存储库来实现Saga Persistence。因此,每当重新启动托管saga的进程时,所有尚未完成的传奇都会导致上述错误,因为它们不再存在于存储库中。