2013-02-18 27 views
2

我現在正在使用hornetq一段時間,直到最近它還沒有問題。 我有這樣的問題:我有一些消息在隊列中「卡住」(我正在使用客戶端確認模式,所以問題可能是我的一些消費者持有消息並且未發送確認)。 我使用的JConsole看隊列,我可以看到該消息反呈上升趨勢,但尚未當我嘗試「listMessagesAsJson」我得到一個空的結果 參考,我嘗試將它們發送到死以後隊列(交易模式,故意的),並在DLQ扔RuntimeExceptions實際上,我可以同時看到messageCounter和「listMessagesAsJson」實際執行DLQ上的工作(我得到的消息列表) 但是,我無法捉摸的DLQ和我普通的區別隊列。 任何人都可以幫助我嗎? 在此先感謝hornetq「listMessagesAsJson」不能正常工作

+0

你可以添加你使用的版本到你的問題? – 2013-02-18 17:09:40

+0

你還問這在這裏同樣的問題:https://community.jboss.org/thread/221387?tstart=0 – 2013-02-18 17:10:47

回答

1

我懷疑你是對客戶的不ACKING消息正確。已經傳遞給消費者但尚未確認(或已提交)的隊列中的消息以這種灰色狀態存在,必須保留它們以防止客戶端回滾並且消息必須重新傳遞,但同時它們對其他人來說基本上是不可用的,因爲他們只能交付給一個消費者。我敢打賭,如果您有n消息在您的隊列中,但沒有活動消費者,listMessagesAsJson操作將列出它們沒有問題。

的DLQ工作,因爲運行時的例外是終端和經紀人知道消息已被消費者拒絕,所以它不是在「灰色」地帶。

+0

這聽起來合乎邏輯的,除了我周圍的一些更和API玩了「listScheduledMessages」不會返回延遲的消息中隊列。另外,我期望JMX接口完全獨立於它所監視的資源,所以它絕對不應該作爲另一個消費者 – ShinySpiderdude 2013-02-19 22:46:00