【问题标题】:NServiceBus warning about TimeoutPersisterReceiver failing to fetch timeouts from the timeout storageNServiceBus 警告有关 TimeoutPersisterReceiver 无法从超时存储中获取超时
【发布时间】:2017-03-21 11:41:52
【问题描述】:

我最近注意到我的 NSB 日志文件显着增长,因为一个我以前从未注意到的警告。

2017-03-21 12:17:50.554 WARN NServiceBus.Timeout.Hosting.Windows.TimeoutPersisterReceiver 无法从超时存储中获取超时 System.NullReferenceException: La référence d'objet n'est pas définie à une instance d'un objet。 à NServiceBus.Timeout.Hosting.Windows.TimeoutPersisterReceiver.Poll(Object obj) dans C:\BuildAgent\work\3206e2123f54fce4\src\NServiceBus.Core\Timeout\Hosting\Windows\TimeoutPersisterReceiver.cs:ligne 90 à System.Threading.Tasks.Task.Execute() 2017-03-21 12:17:50.560 INFO NServiceBus.CircuitBreakers.RepeatedFailuresOverTimeCircuitBreaker TimeoutStorageConnectivity 的断路器现在处于武装状态

此警告每秒钟出现一次,因此您可以想象我的日志文件的大小。

我在调整 NServiceBus 日志级别时注意到此警告,因为我的服务中有几次无法解释的崩溃。我发现这个警告会导致我的服务在一段时间后崩溃,导致 FatalExecutionEngineError 异常(见下面的截图)。

我正在使用 NServiceBus 5.2.21。

有人可以帮我摆脱这个警告吗?

【问题讨论】:

  • 您似乎遇到了与持久性数据库的连接超时问题?这将导致断路器启动并启动并关闭端点......

标签: nservicebus nservicebus5


【解决方案1】:

我使用旧版本的 NServiceBus (5.2.14) 解决了我的问题。在这个版本之上,问题就出现了,并且在这个版本之下一切正常。

根据我的测试,禁用 NServiceBus 日志记录功能时似乎不会出现崩溃。由于我没有在 NServiceBus 中使用超时,因此禁用日志时一切正常。看起来线程之间出现了并发访问问题。

也许这个错误从未被发现,因为这是一个旧版本,并且由于 NServiceBus 当前版本是 6.x(7.x 即将到来),它从未被修复过。

【讨论】:

    【解决方案2】:

    这是由于超时合同发生了重大变化。确保您不仅使用最新版本的 Core,而且还用于持久性。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-11-02
      • 1970-01-01
      • 1970-01-01
      • 2018-11-10
      • 1970-01-01
      • 2012-05-18
      • 2013-02-15
      • 1970-01-01
      相关资源
      最近更新 更多