我是activeMQ的新用户。我需要编写代码来获取所有队列并阅读消息。 我没有找到像获取所有队列的API。 如何从ActiveMQ中读取队列。如果可能,有些示例会有所帮助。从activeMQ获取所有队列
回答
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 :)
我试过getDestinations和getDestinationMap,但getDestinations返回了空白数组和getDestinationMap找不到。你能给我一些代码库吗?像什么应该是网址(imean http:// localgost:8082或tcp:// localhost:616161)请让我知道。谢谢 – Anandkumar
也许在代理上没有定义队列,请尝试调用createQueue(),然后调用getDestinations() – crowne
在java中获取ActiveMQ中的所有队列。
下面添加Maven依赖于的pom.xml
<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://本地主机: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. ActiveMQ获取队列中的所有消息
- 2. 在java中获取activemq的所有队列名称
- 3. 的ActiveMQ获取入队/出队计数
- 4. 如何获取ActiveMQ中的所有入队邮件?
- 5. ActiveMQ从队列中按需消耗所有消息
- 6. 从ActiveMQ队列中获取实时数据
- 7. MSMQ获取所有私人队列
- 8. 获取队列管理器的所有队列名称
- 9. ActiveMQ队列编码
- 10. ActiveMQ 5.4.2队列类
- 11. ActiveMQ安全队列
- 12. concurrentMonsumers为ActiveMQ队列
- 13. 从线程队列中获取所有项目
- 14. 创建activemq队列列表
- 15. ActiveMQ - 自动删除所有来自队列中的消息
- 16. ActiveMQ的监控/记录奥姆所有队列
- 17. ActiveMQ - 通过命令行删除/清除所有队列
- 18. ActiveMQ有关删除队列的信息
- 19. 的ActiveMQ:如何获得一个队列中的所有消息接收器(JAVA)
- 20. 如何从ActiveMQ代理获取所有消息?
- 21. 获取ActiveMQ队列长度的简单方法是什么?
- 22. ActiveMQ无需使用JMX即可获取队列大小,JMS
- 23. ActiveMQ + Stomp:多用户队列
- 24. 的ActiveMQ出去过队列
- 25. 使用camel指定从activemq队列读取消息的超时
- 26. 使用STOMP从ActiveMQ队列中读取非阻塞事务
- 27. 仅使用ActiveMQ从网络文件夹获取文件到队列
- 28. 的ActiveMQ如何从队列中的消息有特殊才能
- 29. Rabbitmq并捕获所有队列
- 30. 获取队列ID
你在使用? Native API? JMS绑定? JEE MDB? –