Hermes や GEMS などの API を使用せずにキューを監視しようとしています。つまり、純粋に Java を使用したいと考えています。キューを参照するため、つまり、メッセージがキューに到達したかどうかを実際に消費せずにチェックします。以下のコードを記述しました。
javax.jms.QueueBrowser browser = session.createBrowser(queue);
Enumeration msgs = browser.getEnumeration();
int Count=0;
while(msgs.hasMoreElements())
{
message = (javax.jms.Message)msgs.nextElement();
System.out.println("Message"+message);
Count++;
}
ただし、メッセージをキューに発行すると、結果が表示されません。メッセージがキューに到達し、受信者によって消費されていることを確認しました。したがって、このアプローチが機能しなかったため、前後にキューによって受信された numberOfMessages をカウントするという別のアプローチを使用することを考えました。だから私は以下のコードを使用しました
QueueInfo q= new QueueInfo(queueName);
long l=q.getInTransitMessageCount();
System.out.println("In transit Mesasge Count="+l+"\n");
しかし、これも機能していません。この問題を解決するための提案や説明をいただければ幸いです。コードにコンパイル エラーがなく、必要なすべてのクラスがインポートされていることに注意してください。