10

我最近创建了一些分区队列,我一直在这些队列中发送和接收。他们过去一直以非分区方式运行,没有我当前的任何问题。

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

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

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

有任何想法吗?

更新:

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

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

4

4 回答 4

2

我在我们的生产环境中看到了类似的事情 - 也许它与您看到的行为相同。使用 ServiceBusExplorer 或类似的东西,检查消息的“ContentType”是否 = application/vnd.ms-servicebus-ping。

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

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

于 2015-01-05T20:49:23.190 回答
0

检查队列的锁定持续时间。如果已收到消息但未标记为 Complete(),则它们似乎“卡住”(不可接收),直到锁再次释放消息。

于 2015-01-07T15:46:41.350 回答
0

在调查主题订阅中卡住消息的问题时发现了这个问题。消息在 Azure 门户和服务总线资源管理器中可见,但没有被我的应用程序使用 RegisterMessageHandler 函数拾取。

在将主题状态切换为已禁用然后返回活动后,此问题已得到解决。 在此处输入图像描述

于 2019-12-09T21:15:31.873 回答
-1

服务总线资源管理器中,您可以检查这些消息及其状态,它们可能处于延迟状态。要了解有关延迟状态的更多信息,请阅读内容。

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

于 2019-04-29T13:01:29.450 回答