Websphere MQ:在com.ibm.mq.jms.MQSession中正确使用方法createQueue(java.lang.String queueName)

时间:2015-01-14 05:40:41

标签: jms ibm-mq spring-jms

我需要澄清类createQueue(java.lang.String queueName)中方法com.ibm.mq.jms.MQSession的行为。 如果我传递任意队列名称,它会创建一个临时队列吗?另一方面,需要传递String值来获取表示队列管理器中配置的静态队列的Queue对象? 例如,如果我有dest类型的对象MQDestination,我可以调用dest.toString()或根据javadocs或dest.getStringFromDestination()(返回URI字符串)。如果传递给上面提到的createQueue方法,这两个结果中的任何一个都会起作用吗。

我的问题的目的是正确使用Spring的DynamicDestinationResolver(接受String并返回Destination),后台使用此MQ特定方法。

感谢您的时间

1 个答案:

答案 0 :(得分:1)

您可以在此处找到JMS会话对象的描述:

http://docs.oracle.com/javaee/7/api/javax/jms/Session.html

在JMS中,Session.createQueue()不在MQ队列管理器上创建物理队列,而是用于连接已经定义的队列。 MQSession.createQueue( “Q1”);将导致一个Destination对象,该对象可用于引用队列管理器上已存在的队列'Q1'。

要创建临时队列,您需要使用MQSession对象的createTemporaryQueue()方法。虽然您无法控制所述临时队列的名称。