NServiceBus v5断路器

时间:2015-04-07 12:32:25

标签: nhibernate nservicebus nservicebus5

我们最近将NServiceBus项目从版本4升级到版本5.我们使用NHibernate将数据存储到SQL服务器数据库。自升级以来,我们开始遇到连接超时和TimeoutEntity表的错误。 NServiceBus服务运行良好一段时间 - 至少几个小时然后停止。

在调查其原因时,似乎要查询到TimeoutEntity表的查询 - 查询每分钟完成一次,如果查询需要2秒以上才能完成,则会引发错误并调用CriticalError.Raise - 这会导致NServiceBus停止服务。

一种调查方法是找出超时的原因,但我们也想知道为什么这个功能被改变了 - 在NServiceBus的早期版本中,Logger.Warn被调用而不是CriticalError.Raise。有人会知道为什么在NServiceBus 5中做出这种改变,以及我们可以做些什么来缓解它?

2 个答案:

答案 0 :(得分:1)

您可以配置在发出严重错误之前等待的时间,请参阅http://docs.particular.net/nservicebus/errors/critical-exception-for-timeout-outages了解如何操作。

答案 1 :(得分:0)

您还可以使用

定义自己的严重错误操作
config.DefineCriticalErrorAction((message, exception) => {
     <do something here>
});