2014-09-10 204 views
7

我最近創建了一些分區隊列,從我發送和接收的所有時間開始。他們在過去沒有任何當前問題的情況下以非分區方式運行。Azure服務總線隊列消息卡住了

問題是,我有一個不能接收的隊列中的消息數量。當沒有向隊列發送任何其他消息時,我總是得不到任何迴應,但當我向隊列發送消息時,我會收到沒有問題的新消息。卡在隊列中的消息是活動消息,而不是死信。

我懷疑他們卡在一個特定的分區,但我不知道如何接收他們。

由於我無法接收這些消息是否有辦法重置ServiceBus隊列?

任何想法?

更新:

的數量不是恆定的,但非常緩慢增加。在我們的測試環境中,我們每小時收到的消息少於2000條,隊列重置爲0(零)後,在過去12小時內每條消息都收到約20條消息。這些消息就在那裏但不可接收。至少不是以通常的方式。

該問題僅在兩個命名空間分區後進行。這個問題不在我們沒有使用分區隊列的實時環境中。

+3

您是否依賴於namespaceManager.GetQueue().MessageCount? - >如果是這樣 - 你可以使用Service Bus Explorer工具或使用Api瀏覽Q,當你觀察到Q處於停滯狀態並瀏覽/查看頂部消息,然後發送另一個消息並查看頂部味精不會改變。我懷疑它可能只是一個計數問題。如果是這種情況 - 禁用並啓用Q將導致將NSMgr.GetQueue().MessageCount重置爲正確的值。 – Sreeram 2014-09-25 17:20:53

+0

@ 1of5om3消息顯示在門戶和瀏覽隊列通過VS和編程。在向它發送消息時它會計數,並在接收和刪除它時倒計數。我們最終決定暫時不使用它,因爲它似乎可能存在反制問題,但我們無法確定。關於禁用/啓用也是對的。 – user2413912 2014-09-26 07:25:53

回答

2

我在我們的製作環境中看到過類似的東西 - 也許它的行爲與您所看到的相同。使用ServiceBusExplorer或類似的東西,檢查消息的'ContentType'= application/vnd.ms-servicebus-ping。

如果是這樣的話...這是一個(Azure)系統生成的消息來確定隊列的可用性......據我所知,這些消息在接收後應該消失......但我也不會。從MS的文件是稀疏的這東西... ...

在任何情況下,如果你確定這是原因,你至少可以放心,他們不是你的信息被困在ServiceBus purgatory。希望MS很快修復這個問題...

+0

@RDPP - 鎖定隊列的持續時間爲5分鐘 – jglassco 2015-01-07 16:17:15

+0

這似乎是最準確和可能的原因。 – Dusty 2015-01-20 00:26:55

0

檢查隊列的鎖定持續時間。如果消息已收到但未標記爲完整(),它們似乎會「卡住」(不可接收),直到鎖再次釋放消息。