2016-11-04 2 views
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が返されます。

+0

キューにメッセージがあることをどのように知っていますか?あなたはそれらを見るためにMQへのコンソールを持っていますか? – developer

+0

JBossの管理コンソールに表示されているため、キューに1メッセージがキューイングされています。キューは永続的に設定されていますが、コードでそのキューを監視しようとすると応答は常に0になり、hasMoreElementsメソッドは常にfalseを返します。 – mareyes

答えて

0

キューに有効期限が切れている可能性があります。あなたはまだメッセージがエンキューされたカウントに含まれていることがわかります。しかし、メッセージを読もうとしたり、あなたのケースでブラウズすると、アプリケーションで利用できないことがあります。 AMQターンの例

+0

HI!キューは永続的に設定されています。メッセージが失われることはありません。通信を再確立するリスナーがあり、メッセージをオンにすると、キューに入ったメッセージが受信されます。 – mareyes

関連する問題