【问题标题】:SharedQueue closed - RabbitMQ error messageSharedQueue 已关闭 - RabbitMQ 错误消息
【发布时间】:2015-08-19 23:22:58
【问题描述】:

我在 Visual Studio 中启动应用程序后立即收到 SharedQueue 关闭错误。现在这个错误非常频繁。据我所知,我们没有对代码进行任何更改,并且此代码之前运行良好。

我在网上和 SO 上都看到过许多类似的错误帖子,但我没有发现任何有用的帖子。当异常发生时,它不指向任何代码。有关详细信息,请参阅以下错误:

这是错误堆栈跟踪:

 at RabbitMQ.Util.SharedQueue.EnsureIsOpen()
   at RabbitMQ.Util.SharedQueue.Dequeue(Int32 millisecondsTimeout, Object& result)
   at MassTransit.Transports.RabbitMq.RabbitMqConsumer.Get(TimeSpan timeout) in d:\BuildAgent-02\work\19b3d91f8acfae7a\src\Transports\MassTransit.Transports.RabbitMq\RabbitMqConsumer.cs:line 94

我不确定它是否相关,但我也在附加队列状态:

【问题讨论】:

  • 可以添加rabbitmq日志吗?尝试在此错误期间获取日志
  • 应用池回收时是否出现错误?这是我过去遇到过的问题,通过升级 MassTransit 包的版本解决了
  • @Paul:感谢您的快速回复。我没有看到任何其他错误。我观察到很多消息进入queue_error 队列。如果您在问题中看到附加图片,您将看到两个队列有 296 和 5847 条消息。
  • @SharpCoder,你找到解决这个问题的方法了吗?我把这个问题放在我的腿上,很难找出问题的根源。谢谢
  • @FabioMilheiro :很遗憾我找不到解决方案。

标签: rabbitmq masstransit rabbitmq-exchange


【解决方案1】:

我猜想某些东西正在处理 IEndpoint 实例,该实例可能用于发送或接收消息,并且该处理正在关闭传输。这会导致接收队列被关闭,而总线并不知道。

在使用 MassTransit 时应该释放的唯一对象引用是服务退出时的 IServiceBus 实例。处理该对象会清理其他所有内容。

【讨论】:

  • 这个错误信息并不频繁&一旦开始出现,会持续一段时间。我还是不知道去哪里看!!
猜你喜欢
  • 1970-01-01
  • 2014-05-01
  • 1970-01-01
  • 2014-03-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-06-11
相关资源
最近更新 更多