2013-09-30 38 views
1

我使用org.hornetq.api.core.client確認消息到達隊列

如何確認發送使用

producer.send("validQueue",clientMessage) 

是成功的,也達到了隊列中的消息?

試圖發送到無效的隊列即

producer.send("NoneExistingQueue",clientMessage) 

沒扔hornetQException如我所料。

回答

1

有了核心API,我們允許用戶進行純粹的發佈訂閱。沒有註冊地址意味着你沒有人連接到特定地址(即不感興趣..在這種情況下,消息只是被忽略)

如果你需要這種語義,我建議你做我們在我們做的事情JMS實現,我們在這裏查詢現有的隊列。

如果您知道隊列的名字,我建議你做:

QueueQuery query = session.queueQuery(queueName); 

如果您不知道隊列的名字和你有純的pub/sub:

BindingQuery queryBinding = session.bindingQuery(SimpleString address) 

然後,如果沒有消費者,你可以對你的用例做適當的處理。

+0

謝謝,所以我明白,這是不容易實現在覈心api – igx

+0

不,核心API旨在pub/sub。如果要驗證隊列是否存在,則必須使用正確的方法(發送queueQuery或bindingQuery)。 您發送了一個投票..您應該接受答案,因爲這可能會滿足您的問題 –