0

我得到一个 JMS 队列 (JAVAX.JMS) 我通过以下方式建立连接:

jmsConnect = queueConnectionFactory.createQueueConnection();
jmsSession = jmsConnect.createQueueSession(true,     jmsSession.AUTO_ACKNOWLEDGE);
jmsConnect.start();
connection = queueConnectionFactory.createConnection();
session = connection.createSession(true, Session.AUTO_ACKNOWLEDGE);
connection.start();

我尝试使用此功能获取排队的消息:

QueueBrowser browser = session.createBrowser(Queue);
Enumeration e = browser.getEnumeration();
while (e.hasMoreElements()) {
e.nextElement();
cont++;
}
browser.close();
browser = null;

至少有 1 条排队消息,但是当函数尝试获取排队消息的总数时,总是返回 0,知道会发生什么吗?

4

1 回答 1

0

队列中可能有一条过期消息。您仍然会发现消息在 enqueued count 中,但是当您尝试阅读消息或在您的情况下浏览时,它可能对您的应用程序不可用。AMQ 中的一个例子证明了这一点

于 2016-11-04T04:16:56.593 回答