2016-11-04 146 views
0

我得到一个JMS队列(的javax.jms)我stablish通过连接:错误从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,对于可能发生什么的一些想法?

+0

您如何知道队列中有消息?你有任何控制台到MQ来查看​​它们吗? – developer

+0

因为我在JBoss管理控制台中看到它,所以我的Queue有1个消息排队,队列设置为持久化,但是当我尝试使用代码监视该队列时,答案始终为0,hasMoreElements方法始终返回false。 – mareyes

回答

0

您有可能在队列中有过期的消息。您仍然会发现邮件处于排队计数状态,但是当您尝试阅读邮件或在您的情况下浏览时,它可能无法提供给您的应用程序。 AMQ中的一个例子是this up

+0

嗨!队列设置为持久的消息永远不会丢失,我有一个监听器来重新建立通信,当我打开它时收到排队消息 – mareyes