1

JMX を使用して GET_DESTINATIONS 操作を呼び出すことで、キューをクエリできます。これで、キュー情報 (属性) を受け取ります。このキューに格納されているメッセージを照会したいのですが、可能ですか? 誰かが私に方向性を教えてもらえますか?

私はすでにこのコードを使用してみました

ConnectionFactory connectionFactory = new
   com.sun.messaging.QueueConnectionFactory();


  Connection connection = connectionFactory.createConnection();
  Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

  Queue myQueue = session.createQueue(string);

  QueueBrowser browser = session.createBrowser(myQueue);
  Enumeration msgs = browser.getEnumeration();

  if (!msgs.hasMoreElements()) {
   System.out.println("No messages in queue");
  } else {
   while (msgs.hasMoreElements()) {
    Message tempMsg = (Message) msgs.nextElement();
    System.out.println("Message: " + tempMsg);
   }
  }

  connection.close();

しかし、何らかの理由で、O は JMX を使用する場合と同じキューにアクセスできません。JMXをアクセス標準として使用したいので、それについては調査しませんでした。

私はまだ私を助けることができるJMX操作を見つけようとしていますが、私を助けることができるものは何も見つかりません.

何を探すことができるかヒントを教えてください。

ありがとう、オスカー

編集: お知らせ: キューを消費したくありません。キューからメッセージを削除せずにメッセージを読み取ることができるブラウザと同様の動作が必要です。

4

1 に答える 1

0
QueueBrowser browser = null;

try{
  Queue myQueue = session.createQueue(getName());

  //Create the browser and session to be able to iterate
  browser = session.createBrowser(myQueue);
  Enumeration msgs = browser.getEnumeration();

このコードはメッセージを提供し、それを繰り返すだけで、メッセージとその内容に関する情報を取得できます

于 2010-12-14T09:54:09.977 に答える