Настроил следующую тему / очередь в broker.xml
:
<address name="Topic1">
<multicast>
<queue name="Queue1"/>
<queue name="Queue2"/>
</multicast>
</address>
Как я могу создать производителя для Queue1 / Queue2 для отправки сообщения?Я использую ActiveMQ Artemis 2.6.3.
Следующим способом я создаю фабрику соединений, поиск соединений и очереди
Hashtable<String, Object> properties = new Hashtable<>();
properties.put("connectionFactory.ConnectionFactory", (tcp://localhost:61618,tcp://localhost:61616)?ha=true&retryInterval=3000&reconnectAttempts=-1&initialConnectAttempts=10&maxRetryInterval=3000&clientFailureCheckPeriod=1000);
properties.put(Context.INITIAL_CONTEXT_FACTORY, "org.apache.activemq.artemis.jndi.ActiveMQInitialContextFactory");
InitialContext jndiContext = new InitialContext(properties);
ConnectionFactory connFactory = (ConnectionFactory) jndiContext.lookup(connectionFactory);
Connection connection = connFactory.createConnection(userName, password);
Session session = connection.createSession(true,javax.jms.Session.AUTO_ACKNOWLEDGE);
//Using following way looking up Multicast Queue2 on Address Topic1
Destination dest = new ActiveMQTopic("Topic1::Queue2");
MessageProducer producer = session.createProducer(dest);
producer.send(message, Message.DEFAULT_DELIVERY_MODE, Message.DEFAULT_PRIORITY, msgTTL);
После того, как сделал с вышеуказанным изменением кода и попытался отправить сообщение,сообщение не будет отправлено в очередь "Queue2"