从activeMQ获取所有队列

时间:2012-12-18 06:45:25

标签: java activemq

我是 activeMQ 的新手。我需要编写代码来获取所有队列并阅读消息。 我没有找到任何像获取所有队列的API。 如何从 ActiveMQ 中读取队列。如果可能,某些示例将会有所帮助。

2 个答案:

答案 0 :(得分:4)

在java中获取ActiveMQ中的所有队列。

pom.xml

中添加Maven依赖项
<dependency>
    <groupId>org.springframework</groupId>
    <artifactId>spring-jms</artifactId>
    <version>4.3.2.RELEASE</version>
</dependency>  

<dependency>
    <groupId>org.apache.activemq</groupId>
    <artifactId>activemq-spring</artifactId>
    <version>5.14.0</version>
</dependency>

您可以将 tcp:// localhost:61616 / 更改为 tcp://180.50.50.10:61616 / ,其中activemq服务正在运行。

Java代码:

try {
    ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616/");

    ActiveMQConnection connection = (ActiveMQConnection) connectionFactory.createConnection();
    DestinationSource ds = connection.getDestinationSource();

    connection.start();

    Set<ActiveMQQueue> queues = ds.getQueues();

    for (ActiveMQQueue activeMQQueue : queues) {
        try {
            System.out.println(activeMQQueue.getQueueName());
        } catch (JMSException e) {
            e.printStackTrace();
        }
    }
    connection.close();
} catch (Exception e) {
    e.printStackTrace();
}

控制台输出:

HtmlQueue
emaildewsgmc
pdfdirectinpirepscli
pdfdirectinpirecli
InQueue
ReceiveQueue
NormalPriorityQueue
emaildirecthp
pdfdewsgmc
pdfdirecthp
Send2Recv
SaveQueue
LowPriorityQueue
emaildewshp
HighPriorityQueue
PdfQueue
AnotherDest
pdfdewshp
emaildirectgmc

答案 1 :(得分:1)

Man你已经在使用一个名为activeMQ的API,并且从这个API你可以得到所有的队列。
我无法理解你所说的这一部分你说的是什么 *我没有发现任何api喜欢获得Q *
无论如何,你可以使用 JMX 。 最简单的方法是通过将JMX控制台或JConsole指向代理JVM来使用JMX。
以编程方式您还可以通过getDestinations()使用Java代码从代理获取所有活动目标。 您还可以通过getDestinationMap()获取ActiveMQDestination索引的所有Destination对象的Map。这使您可以查看各个目标详细信息,例如队列深度等等。
最后一种方法是使用 WebConsole ActiveMQ Web控制台是一个基于Web的管理工具,用于使用ActiveMQ。当与JMX支持一起使用时,它可以成为使用ActiveMQ的宝贵工具。
请遵循detailed support of ActiveMQ on their website where you can find almost everything:)