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

Glassfish-获取会话中的所有队列

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

    我希望能够获取服务器(或会话)中的所有队列,这也没问题。有可能吗?

    我的情况如下: 为此,我有以下代码:

    ActiveMQConnection.makeConnection("tcp://localhost:61616");
    activeMQConnection.start();
    
    //Get queues
    DestinationSource destinationSource = activeMQConnection.getDestinationSource();
    Set<ActiveMQQueue> queues = destinationSource.getQueues();
    

    最后一行得到连接的所有队列,这正是我所需要的。但这是我的ActiveMQ代码。

    ConnectionFactory connectionFactory = (ConnectionFactory) ctx.lookup("cn=QueueConnectionFactory");
    

    Connection Connection=connectionFactory.createConnection();

    Queue myQueue=session.createQueue(“myQueue”);

    这很好,因为它是完全独立的(我想,必须测试它)。但问题是我必须注册队列,这是我不想做的事。我想在服务器中获取所有现有队列,而不需要注册,但我找不到任何GeQueQues()方法或任何方法来模仿它的行为。

    我还发现activeMQ中的DestinationSource类继承自MessageListener,但是这个类没有提供任何类似的方法:(

    你能帮帮我吗?

    谢谢您, 奥斯卡

    1 回复  |  直到 13 年前
        1
  •  1
  •   JSBach    13 年前

    我可以使用JMX实现这一点,下面是代码:

    HashMap environment = new HashMap();
      String[] credentials = new String[] { "user", "pass" };
      environment.put(JMXConnector.CREDENTIALS, credentials);
    
      JMXServiceURL url = new JMXServiceURL("URL");
    
      // Get JMX connector, supplying user name and password
      JMXConnector jmxc1 = JMXConnectorFactory.connect(url, environment);
    
      // Get MBean server connection
      MBeanServerConnection mbsc = jmxc1.getMBeanServerConnection();
    
      ObjectName destMgrConfigName = new ObjectName(MQObjectName.DESTINATION_MANAGER_MONITOR_MBEAN_NAME);
    
      // Create operation's parameter and signature arrays
    
      Object opParams[] = {};
    
      String opSig[] = {};
    
      // Invoke operation
      ObjectName[] objectNames = (ObjectName[]) mbsc.invoke(destMgrConfigName, DestinationOperations.GET_DESTINATIONS, opParams, opSig);
    
      for (ObjectName objectName : objectNames) {
       System.out.println(objectName.getCanonicalName());
       System.out.println(objectName.getKeyProperty("name"));
      }
    

    http://forums.oracle.com/forums/thread.jspa?threadID=2129291&tstart=0