Azure服务总线队列消息被卡住

Azure服务总线队列消息被卡住,azure,azureservicebus,azure-servicebus-queues,Azure,Azureservicebus,Azure Servicebus Queues,我最近创建了一些分区队列,从中我一直发送和接收数据。它们在过去是非分区运行的,没有我当前的任何问题 问题是,队列中有固定数量的消息无法接收。当我不向队列发送任何其他消息时,我总是一无所获,但当我向队列发送消息时,我会毫无问题地收到新消息。卡在队列中的消息是活动消息,而不是死信消息 我怀疑它们卡在特定的分区中,但我不知道如何接收它们 由于我无法接收这些消息,有没有办法重置ServiceBus队列 有什么想法吗 更新: 这个数字不是恒定的,而是缓慢增加的。在我们的测试环境中,我们每小时接收的消息略多

我最近创建了一些分区队列,从中我一直发送和接收数据。它们在过去是非分区运行的,没有我当前的任何问题

问题是,队列中有固定数量的消息无法接收。当我不向队列发送任何其他消息时,我总是一无所获,但当我向队列发送消息时,我会毫无问题地收到新消息。卡在队列中的消息是活动消息,而不是死信消息

我怀疑它们卡在特定的分区中,但我不知道如何接收它们

由于我无法接收这些消息,有没有办法重置ServiceBus队列

有什么想法吗

更新:

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


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

我在我们的生产环境中看到了类似的情况-可能与您看到的行为相同。使用ServiceBusExplorer或类似工具,检查消息的“ContentType”=application/vnd.ms-servicebus-ping

如果是的话。。。这是(Azure)系统生成的消息,用于确定队列可用性。。。据我所知,这些信息应该在收到后消失。。。但我的也不是。MS提供的文档很少涉及这方面的内容


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

检查队列的锁定持续时间。如果邮件已收到但未标记为已完成(),则在锁再次释放邮件之前,这些邮件似乎已“卡住”(不可接收)。

您可以从中检查这些邮件及其状态,它们可能处于延迟状态。要了解有关延迟状态的更多信息,请阅读


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

在调查主题订阅中的邮件问题时发现此问题。在Azure门户和服务总线资源管理器中可以看到消息,但我的应用程序无法使用RegisterMessageHandler函数拾取消息

将主题状态切换为禁用,然后再切换回活动状态后,此问题得到解决。

您是否依赖namespaceManager.GetQueue().MessageCount?-->如果是这样-当您观察到Q处于卡住状态时,您可以使用Service Bus Explorer工具或Api浏览Q,浏览/查看顶部消息,然后发送另一条消息,查看顶部消息是否没有更改。我怀疑这可能只是一个计数问题。如果是这种情况-禁用并启用Q将导致将NSMgr.GetQueue().MessageCount重置为正确的值。@1of5om3通过VS和编程方式浏览队列时,消息同时显示在门户和队列中。它将在向其发送消息时计数,在从中接收和删除消息时计数。我们最终决定暂时不使用它,因为它似乎有一个反问题,但我们不能确定。关于禁用/启用,您也是对的。@user2413912您找到解决方案了吗?因为我面临着同样的问题。@RDPP-队列的锁定持续时间是5分钟,这似乎是最准确的&可能是造成差异的原因。