オンプレミスの Service Bus インストールがあります。QPID AMQP 1.0 0.24 クライアントを使用して、メッセージを発行および購読/読み取りできます。ただし、キューのブラウジングは機能しません。キューにメッセージがなくなると、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 connectionFactory = (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 クライアントまたは Service Bus のバグですか?
ありがとう、ジャン