我想在發送JMS消息時設置所需的隊列管理器。 目前我能夠在JMSReplyTO方法中設置目標隊列,但我不知道如何指定隊列管理器。JMS將回復設置爲隊列管理器
TextMessage message = queueSession.createTextMessage();
message.setText(messageStr);
message.setJMSReplyTo(destinationQueue);
queueSender.send(message);
我想在發送JMS消息時設置所需的隊列管理器。 目前我能夠在JMSReplyTO方法中設置目標隊列,但我不知道如何指定隊列管理器。JMS將回復設置爲隊列管理器
TextMessage message = queueSession.createTextMessage();
message.setText(messageStr);
message.setJMSReplyTo(destinationQueue);
queueSender.send(message);
我不知道你在使用哪個MQ,但是你的類名看起來像是WebSphere的,所以我猜測就是這樣。
可以在連接工廠上設置隊列管理器名稱,在之前,您可以從中獲得連接。使用MQConnectionFactory#setBrokerQueueManager(String)。
該方法的IBM javadocs爲here, on publib。
如果您使用的是ActiveMQ,那麼您無法設置隊列管理器,因爲ActiveMQ不支持該抽象。因爲ActiveMQ代理和MQ管理器大致相同,所以您可以將代理命名爲希望將消息用作其隊列管理器的任何代理。不過,我不知道這是否會有所幫助。您可能必須切換到使用WebSphere自己的MQ。
在這裏你去(爲WebSphere MQ):
MQQueue replyToQ = new MQQueue(QMgrName, ReplyQueue);
Destination replyTo = (Destination) replyToQ;
message.setJMSReplyTo(replyTo);
雅,你是對的..我已經實施了這個解決方案,它的工作正常..感謝羅傑 – Shankar
哪些MQ您使用的?這不是RabbitMQ或ActiveMQ ... –
嗨,它是由WebSphere提供的活動MQ – Shankar
啊。那麼,ActiveMQ可能是提供者,但你提到的類不是本地的ActiveMQ。連接工廠的完整軟件包和類名是什麼?它有一個setBrokerQueueManager方法嗎? –