gpt4 book ai didi

java - 是否可以获取远程代理上的队列列表?

转载 作者:塔克拉玛干 更新时间:2023-11-03 04:58:49 25 4
gpt4 key购买 nike

我正在尝试弄清楚如何获取远程代理上现有队列的列表。

看起来我可以通过添加咨询消息(我还没有工作)在创建/销毁队列时收听它们,但我需要在启动时获取所有现有队列。

看起来我可以用 getDestinationMap 做到这一点:

http://activemq.apache.org/maven/apidocs/org/apache/activemq/broker/region/Region.html#getDestinationMap()

但这似乎只能从嵌入式和进程内代理调用。

我的意思是...我愿意走那条路,但为 activemq 设置正常的 init/daemon 设置,然后让远程进程像普通的 JMS 消费者一样连接到它似乎更有意义。

这个文档似乎暗示这是可能的:

http://activemq.apache.org/how-can-i-see-what-destinations-are-used.html

但这是通过使用 Region 对象实现的,而且只有当您与 activemq 处于同一 JVM 中时,这似乎才有可能。

最佳答案

    // Create a ConnectionFactory
ActiveMQConnectionFactory connectionFactory = new ActiveMQConnectionFactory("tcp://localhost:61616");

// Create a Connection
ActiveMQConnection connection = (ActiveMQConnection) connectionFactory.createConnection();


//Important point that was missed in the above answer
connection.start();

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

for(ActiveMQQueue queue : queues){
try {
System.out.println(queue.getQueueName());
} catch (JMSException e) {
e.printStackTrace();
}
}

关于java - 是否可以获取远程代理上的队列列表?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24212496/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com