java - JMS QueueConnectionFactory 与 ConnectionFactory

标签 java jms jndi mq

我的问题是关于以下两个工厂的使用:

  • 连接工厂
  • 队列连接工厂

目前我只使用ConnectionFactory 来初始化所有内容:

Connection conn = factory.createConnection(user, pw);
Session session = conn.createSession()
Destination dest = session.createQueue('xyz')
...

如果我理解正确,QueueConnectionFactory 的工作方式几乎相同。 是完全一样的东西吗?

我特别想知道,因为我正在使用包含这两个对象的 JNDI 上下文。所以,我不确定我应该更喜欢使用哪一个。

最佳答案

javax.jms 包 API 说:

由于历史原因,JMS 提供了四组用于发送和接收消息的可选接口(interface):

•JMS 1.0 定义了两种特定于域的 API,一种用于点对点消息传递(队列),一种用于发布/订阅(主题)。尽管出于向后兼容性的原因,它们仍然是 JMS 的一部分,但它们应该被视为已被后来的 API 完全取代。

•JMS 1.1 引入了一个新的统一 API,它提供了一组可用于点对点和发布/订阅消息传递的接口(interface)。这在此处称为经典 API。

•JMS 2.0 引入了一个简化的 API,它提供了经典 API 的所有功能,但需要的接口(interface)更少,使用起来也更简单。

每个 API 都提供一组不同的接口(interface),用于连接到 JMS 提供程序以及发送和接收消息。然而,它们都共享一组通用接口(interface)来表示消息和消息目的地,并提供各种实用功能。

换句话说,QueueConnectionFactory 只是一个遗留接口(interface)

关于java - JMS QueueConnectionFactory 与 ConnectionFactory,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30121654/

相关文章:

java - 我用于选择操作的 JDBCTemplate 代码有什么问题?

wcf - 如何使用可靠的异步消息可靠地解析和存储数据?

java - 如何在企业java应用程序中发送jms回复

jakarta-ee - java :comp/env and java:global?是什么关系

java - JTable 中的列名未更新

java - 如何将 Java bean 属性设置为专家属性?

java - 是否可以给一个 JSP 页面变量?

oracle - 使用 Oracle Streams AQ 在 Spring MDB 中共享 JMS 和 Hibernate 事务?

jndi - 如何从 MBean 将对象绑定(bind)到 Jboss 7 中的 JNDI? (命名上下文是只读的)

tomcat - 针对不同环境外化tomcat jdbc连接池信息