【问题标题】:NServiceBus v5 Circuit BreakerNServiceBus v5 断路器
【发布时间】:2015-04-07 12:32:25
【问题描述】:

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

在调查此问题的原因时,它似乎是对 TimeoutEntity 表的轮询查询 - 查询每分钟完成一次,如果查询需要超过 2 秒才能完成,则会引发错误并调用 CriticalError.Raise -这会导致 NServiceBus 停止服务。

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

【问题讨论】:

    标签: nhibernate nservicebus nservicebus5


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      您还可以使用定义自己的严重错误操作

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2017-05-19
        • 2020-12-25
        • 1970-01-01
        • 1970-01-01
        • 2022-01-23
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多