代码之家  ›  专栏  ›  技术社区  ›  JSBach

openmq和jmx-是否可以查询消息?

  •  1
  • JSBach  · 技术社区  · 13 年前

    我可以通过使用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操作,但我没有找到任何可以帮助我的操作。

    你能给我一些提示吗?我能找什么?

    谢谢您, 奥斯卡

    编辑:只是想让你知道:我不想使用队列,我想要一个类似于浏览器的行为,在浏览器中,我可以读取消息而不从队列中删除它们。

    1 回复  |  直到 13 年前
        1
  •  0
  •   JSBach    13 年前
    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();
    

    推荐文章