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

Websphere MQ: Proper usage of method createQueue(java.lang.String queueName) in com.ibm.mq.jms.MQSession

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

我的问题的目的是正确使用 Spring 的 DynamicDestinationResolver(采用字符串和 returns 目标),它在幕后使用此 MQ 特定方法。

感谢您的宝贵时间

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

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

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

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