Azure Service Bus队列消息卡住了

时间:2014-09-10 09:58:43

标签: azure azureservicebus azure-servicebus-queues

我最近从我发送和接收的地方创建了一些分区队列。他们过去没有分区,没有我当前的任何问题。

问题是,队列中有一些我无法接收的消息。在没有向队列发送任何其他消息时我总是得不到任何回报,但是当我向队列发送消息时,我收到新消息没有问题。卡在队列中的消息是活动消息,而不是死信。

我怀疑他们被困在一个特定的分区,但我不知道如何接收它们。

由于我无法接收这些消息,是否可以重置ServiceBus队列?

有什么想法吗?

更新

数字不是常数,而是非常缓慢地增加。在我们的测试环境中,我们每小时收到的消息少于2000条,并且在重置为0(零)后,队列在过去12小时内每次收到大约20条消息。那些消息就在那里但不可接收。至少不是以通常的方式。

问题仅在分区后的两个名称空间中出现。问题不在我们不使用分区队列的实时环境中。

4 个答案:

答案 0 :(得分:2)

我在生产环境中看到了类似的东西 - 也许它与你看到的行为相同。使用ServiceBusExplorer或类似的东西,检查消息的内容类型' = application / vnd.ms-servicebus-ping。

如果是这样......这是一个(Azure)系统生成的消息,用于确定队列的可用性......据我所知,这些消息应该在收到后消失......但我的也不知道。来自MS的文档在这些内容上很少......

在任何情况下,如果您确定这是原因,您至少可以放心,它们不是您在ServiceBus炼狱中停留的消息。希望MS能很快解决这个问题......

答案 1 :(得分:0)

检查队列的锁定持续时间。如果已收到消息但未标记为完成(),则他们似乎已经被卡住了#34; (不可接收),直到锁再次释放消息。

答案 2 :(得分:0)

Service Bus explorer中,您可以检查这些消息及其状态,它们可能处于延迟状态。要了解有关延期状态的更多信息,请阅读this

”当队列或订阅客户端收到它愿意处理的消息,但由于应用程序内部的特殊情况而当前无法对其进行处理时,它可以选择“推迟”将消息检索到稍后,消息将保留在队列或订阅中,但将其保留。”

答案 3 :(得分:0)

在调查邮件停留在主题订阅中的问题时发现了这个问题。消息在Azure门户和服务总线资源管理器中可见,但我的应用程序无法使用RegisterMessageHandler函数来接收消息。

在将“主题”状态切换为“禁用”,然后又恢复为“活动”后,此问题得以解决。 enter image description here