JMS Установить ответ диспетчеру очередей

Я хочу установить необходимый диспетчер очередей при отправке сообщения JMS. В настоящее время я могу установить очередь назначения в методе JMSReplyTO, но я не знаю, как также указать диспетчер очередей.

TextMessage message = queueSession.createTextMessage();
message.setText(messageStr);
message.setJMSReplyTo(destinationQueue);
queueSender.send(message);

person Shankar    schedule 22.02.2014    source источник
comment
Какой МК вы используете? Это не RabbitMQ или ActiveMQ...   -  person Paul Hicks    schedule 22.02.2014
comment
Привет, это Active MQ, предоставленный WebSphere.   -  person Shankar    schedule 22.02.2014
comment
Ах. Что ж, ActiveMQ может быть поставщиком, но упомянутые вами классы не являются родными ActiveMQ. Каково полное имя пакета и класса фабрики соединений? Есть ли у него метод setBrokerQueueManager?   -  person Paul Hicks    schedule 22.02.2014
comment
Я обновил свой ответ подробностями ActiveMQ.   -  person Paul Hicks    schedule 22.02.2014


Ответы (2)


Вот, пожалуйста (для WebSphere MQ):

   MQQueue replyToQ = new MQQueue(QMgrName, ReplyQueue);
   Destination replyTo = (Destination) replyToQ;
   message.setJMSReplyTo(replyTo);
person Roger    schedule 26.02.2014
comment
Да, вы правы. Я уже внедрил это решение, и оно работает нормально. Большое спасибо, Роджер. - person Shankar; 27.02.2014

Я не знаю, какой MQ вы используете, но имена ваших классов похожи на имена классов WebSphere, так что я предполагаю, что это все.

Имя администратора очередей можно задать в фабрике соединений, прежде чем вы получите от нее соединение. Используйте MQConnectionFactory#setBrokerQueueManager(String).

Javadocs IBM для этого метода: ">здесь, в паблике.

Если вы используете ActiveMQ, вы не можете установить диспетчер очередей, поскольку ActiveMQ не поддерживает эту абстракцию. Вы можете назвать своего брокера любым именем, которое вы хотите, чтобы ваши сообщения использовали в качестве диспетчера очередей, поскольку брокеры ActiveMQ и менеджеры MQ примерно эквивалентны. Хотя я понятия не имею, поможет ли это вообще. Возможно, вам придется переключиться на использование собственного MQ WebSphere.

person Paul Hicks    schedule 22.02.2014