Websphere MQ: 在 com.ibm.mq.jms.MQSession 中正确使用方法 createQueue



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

我的问题的目的是正确使用 Spring 的DynamicDestinationResolver(获取字符串并返回目标),它在幕后使用此 MQ 特定方法。

感谢您抽出宝贵时间

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

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

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

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

最新更新