是否可以在没有 QueueConnectionFactory 的情况下从 WAS JNDI 获取 JMS 队列引用?

Is it possible to get the JMS Queue reference from WAS JNDI without QueueConnectionFactory?

我正在做一个项目,我需要使用来自 IBM MQ 的 JMS 消息,它在 websphere 中定义为 JNDI。

我只给出了队列的JNDI (jms/sampleQ)。我正在尝试从 Spring JMS 连接队列。

我的问题是,QueueConnectionFactory 是否必须连接队列(JNDI)?

要从 JNDI 获取 javax.jms.Queue 对象,您不需要 QueueConnectionFactory 对象。它们是从 JNDI 查找的独立对象。

但是,要实际发送或接收消息,您需要组合 JMS 队列和 JMS QueueConnectionFactory。 JNDI 中的 JMS 队列可以与 MQ QueueConnectionFactory 一起使用,无论您如何获取它,因此不需要从 WAS JNDI 名称空间获取它,但是如果您没有从 WAS JNDI 获取 QueueConnectionFactory,您将与某些服务器功能(如事务管理器)松散集成。 Spring 可以从 JNDI 选择 QueueConnectionFactory 作为选项。