2014-02-22 58 views
1

我想在發送JMS消息時設置所需的隊列管理器。 目前我能夠在JMSReplyTO方法中設置目標隊列,但我不知道如何指定隊列管理器。JMS將回復設置爲隊列管理器

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

哪些MQ您使用的?這不是RabbitMQ或ActiveMQ ... –

+0

嗨,它是由WebSphere提供的活動MQ – Shankar

+0

啊。那麼,ActiveMQ可能是提供者,但你提到的類不是本地的ActiveMQ。連接工廠的完整軟件包和類名是什麼?它有一個setBrokerQueueManager方法嗎? –

回答

0

我不知道你在使用哪個MQ,但是你的類名看起來像是WebSphere的,所以我猜測就是這樣。

可以在連接工廠上設置隊列管理器名稱,在之前,您可以從中獲得連接。使用MQConnectionFactory#setBrokerQueueManager(String)。

該方法的IBM javadocs爲here, on publib

如果您使用的是ActiveMQ,那麼您無法設置隊列管理器,因爲ActiveMQ不支持該抽象。因爲ActiveMQ代理和MQ管理器大致相同,所以您可以將代理命名爲希望將消息用作其隊列管理器的任何代理。不過,我不知道這是否會有所幫助。您可能必須切換到使用WebSphere自己的MQ。

3

在這裏你去(爲WebSphere MQ):

MQQueue replyToQ = new MQQueue(QMgrName, ReplyQueue); 
    Destination replyTo = (Destination) replyToQ; 
    message.setJMSReplyTo(replyTo); 
+0

雅,你是對的..我已經實施了這個解決方案,它的工作正常..感謝羅傑 – Shankar