jms - ActiveMQ 连接到某个地址/端口处的现有队列

标签 jms activemq

我应该将消息发送到地址为 10.7.1.10、端口 61616 的名为“IngestGenericJSONQueue”的 ActiveMQ 队列。我可以创建一个 ActiveMQConnectionFactory 对象,但是如何查找现有队列呢?到目前为止,我只找到了 session.createQueue() 函数,但我不确定它是否用于创建与现有队列的连接,或者仅用于创建一个全新的队列。如何按名称连接到现有的 activemq 队列?

ConnectionFactory cFactory = new ActiveMQConnectionFactory("tcp://10.7.1.10:61616");
Connection connection = cFactory.createConnection();
connection.start();
Session session = connection.createSession(false, Session.AUTO_ACKNOWLEDGE);

Destination queue = session.createQueue("IngestGenericJSONQueue");

System.out.println("queue connected");

MessageProducer producer = session.createProducer(queue);
TextMessage m = session.createTextMessage();
m.setText(jsonStix.toString());

producer.send(m);

System.out.println("done");

最佳答案

ActiveMQ 根据需要创建队列和主题,因此如果在创建生产者时不存在同名的队列,则会创建一个新队列。如果队列已经存在,那么生产者将发送到该队列。

您可以使用 JMX 或 Web 控制台等管理工具来探索正在运行的代理,以查看已经存在的队列。

关于jms - ActiveMQ 连接到某个地址/端口处的现有队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31329816/

相关文章:

spring activemq jmsTemplate.setTimeToLive 需要超过指定毫秒数的时间来删除消息

jms - 与激活规范绑定(bind)名称等效的注释

java - jboss7 - 如何获取队列中的消息数量?

java - 多线程JMS代码: CLIENT_ACKNOWLEDGE or transacted session

java - 无法让 ActiveMQ 出队

java - JMS队列: Multiple Threads to read

java - ActiveMQ Jolokia API 如何获取完整的消息正文

c++ - ActiveMQ C++ 同步客户端

java - JMS关闭客户端资源(MessageConsumer、Session、Connection)

jms - wildfly10中JMS队列的JNDI名称格式