我們有內部服務總線安裝。我可以使用QPID AMQP 1.0 0.24客戶端發佈和訂閱/讀取消息。然而,如果隊列瀏覽不起作用,那麼當hasMoreElements()隊列中沒有更多消息時,調用會無限期地掛起。堆棧跟蹤是:瀏覽服務總線隊列掛在hasMoreElements()
Thread [main] (Suspended)
waiting for: ConnectionEndpoint (id=19)
Object.wait(long) line: not available [native method]
ConnectionEndpoint(Object).wait() line: 503
Receiver.drainWait() line: 533
QueueBrowserImpl$MessageEnumeration.hasMoreElements() line: 154
Qpid.testBrowseTopic(Connection, Context) line: 209
Qpid.runTest(Qpid$Options) line: 93
Qpid.main(String[]) line: 63
的代碼:
連接工廠的connectionFactory =(連接工廠)context.lookup( 「MS_SERVICE_BUS」); connection = connectionFactory.createConnection();
session = connection.createSession(false/*transacted*/, Session.AUTO_ACKNOWLEDGE);
Queue queue = (Queue) context.lookup("MY_QUEUE");
browser = session.createBrowser(queue);
Enumeration<Message> msgs = browser.getEnumeration();
while (msgs.hasMoreElements()) {// hangs when there are no more messages
Message message = msgs.nextElement();
//printMessage(message);
}
QPID 0.22的相同行爲。這是QPID客戶端還是服務總線中的錯誤?
謝謝,揚
即使使用Session.CLIENT_ACKNOWLEDGE,也會從隊列中刪除消息。我認爲這種模式只有在使用connection.start()和receive()時纔有效果。未實現的功能列表:[使用Service with .NET with AMQP 1.0](http://msdn.microsoft.com/en-us/library/windowsazure/jj841075.aspx) –
這是一個相關問題http:// osdir.com/ml/dev-qpid.apache.org/2013-09/msg00417.html? – Sentinel
使用QPID 0.26 RC4進行檢查,仍然掛起。但詹姆斯表示目前不支持,所以它可能也是經紀人的問題。 –