我想在发送JMS消息时设置所需的队列管理器。 目前我能够在JMSReplyTO方法中设置目标队列,但我不知道如何指定队列管理器。
TextMessage message = queueSession.createTextMessage();
message.setText(messageStr);
message.setJMSReplyTo(destinationQueue);
queueSender.send(message);
答案 0 :(得分:3)
在这里(对于WebSphere MQ):
MQQueue replyToQ = new MQQueue(QMgrName, ReplyQueue);
Destination replyTo = (Destination) replyToQ;
message.setJMSReplyTo(replyTo);
答案 1 :(得分:0)
我不知道你正在使用哪个MQ,但你的类名看起来像是WebSphere的类,所以我猜它就是它。
可以在连接工厂上设置队列管理器名称,之前从中获取连接。使用MQConnectionFactory #setBrokerQueueManager(String)。
该方法的IBM javadoc是here, on publib。
如果您正在使用ActiveMQ,则无法设置队列管理器,因为ActiveMQ不支持该抽象。您可以将您的代理命名为您希望将消息用作其队列管理器的任何内容,因为ActiveMQ代理和MQ管理器大致相同。不过,我不知道这是否会有所帮助。您可能必须切换到使用WebSphere自己的MQ。