【问题标题】:NServiceBus (v 4.0.5) on an Azure virtual machine crashingAzure 虚拟机上的 NServiceBus (v 4.0.5) 崩溃
【发布时间】:2014-03-14 20:09:22
【问题描述】:

我在使用 Azure 服务总线传输 (v 4.0.5) 的 Azure 虚拟机上使用 NServiceBus (v 4.0.5)。 NServiceBus.Host 服务偶尔会崩溃,但最近经常崩溃。抛出的异常是:

Application: NServiceBus.Host.exe
Framework Version: v4.0.30319
Description: The process was terminated due to an unhandled exception.
Exception Info: Microsoft.ServiceBus.Common.CallbackException
Stack:
at Microsoft.ServiceBus.Common.Fx+IOCompletionThunk.UnhandledExceptionFrame(UInt32, UInt32, System.Threading.NativeOverlapped*)
at System.Threading._IOCompletionCallback.PerformIOCompletionCallback(UInt32, UInt32, System.Threading.NativeOverlapped*)

我正在使用运行通用主机服务的专用机器,我有 3 台机器向它发送消息(我不使用 pub/sub)。

我尝试过的

  • 手动重启/重启服务。
  • 正在研究错误:似乎没有多少人收到此消息,对于收到此消息的人来说,他们的回复不适用于我的情况。
  • 验证死信队列:死信队列中有几条消息(过去 6 个月内超过 400 条),但我无法将任何特定消息类型与崩溃关联起来(至少 40% 的消息类型有在死信队列中找到)。我假设这些消息中的大部分已添加到 DLQ,因为服务失败了。
  • 检查应用程序日志:我的应用程序将异常记录到 log4net 日志中,但是在崩溃期间没有记录异常。
  • 检查事件日志:除了上面提到的主要错误消息外,没有发现任何相关信息。
  • 将 NServiceBus 升级到 4.4.2 并将 WindowsAzureServiceBus 包升级到 5.1.1:由于 NuGet 包冲突,升级被证明是痛苦的。我正在使用 Microsoft.Data.OData 5.4.0 和 Microsoft.Data.Edm 5.4.0,但 NServiceBus.Azure 包依赖于这些程序集的 v5.2.0。我可以放弃 nuget 包依赖项并自己添加引用,但我想知道为什么 WindowsAzureServiceBus 包在执行此操作之前特别依赖于 v5.2.0。

任何想法或想法都会有所帮助。

谢谢!

【问题讨论】:

标签: azure nservicebus


【解决方案1】:

我会调查一下,这听起来像是一个错误,很可能是来自天蓝色服务总线的未处理异常(但不一定源自那里)

我在这里创建了一个 github 问题:https://github.com/Particular/NServiceBus.Azure/issues/133

你能重现这个问题吗?在你偶尔看到它和它经常发生之间发生了什么变化。

您可以做的一件事是为 appdomain 上发生的所有异常添加一个事件处理程序并记录它们,理论上这应该捕获任何内容,如果此回调异常存在内部异常,您可以通过这种方式捕获它。

关于包的严格依赖。这主要是因为 nuget 包管理器没有将绑定重定向应用到工作角色的 app.config,这在过去对许多用户来说是错误的(它通常表现为无限重启工作角色)。所以继续并覆盖。

【讨论】:

  • 我们能够重现该问题 - 事实证明,我们正在使用(在这种特殊情况下)Azure 服务总线,其消息大小限制为 250kb,而 MSMQ 限制为 4MB。当消息对于 Azure 服务总线来说太大时,它就会毫无错误地死掉。虽然我同意这不是 NSB 本身的问题,但我会仔细检查并查看 ASB 在排队消息时是否返回错误,并尽可能尝试更好地处理。
  • 谢谢,我会确保在 NSB 中为这种情况添加保护
  • 这个问题将在下一个版本中修复,我还在尝试发送消息之前添加了对大小的健全性检查,以便更清楚地显示错误
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-07
  • 1970-01-01
  • 2013-02-23
  • 1970-01-01
  • 2012-07-10
相关资源
最近更新 更多