NServiceBus v5 Circuit Breaker



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

在调查原因时,似乎是将查询轮询到TimeoutEntity表-查询每分钟完成一次,如果查询花费超过2秒的时间完成,则会引发错误并调用CriticalError.Resese-这会导致NServiceBus停止服务。

一种调查途径是找出超时的原因,但我们也想知道为什么在以前版本的NServiceBus Logger中更改了此功能。调用Warn而不是CriticalError.Raise。有人知道为什么在NServiceBus 5中进行此更改,以及我们能做些什么来减轻它吗?

您可以配置引发严重错误之前的等待时间,请参阅http://docs.particular.net/nservicebus/errors/critical-exception-for-timeout-outages关于如何做到这一点。

您还可以使用定义自己的关键错误操作

config.DefineCriticalErrorAction((message, exception) => {
     <do something here>
});

最新更新