JMS 队列资源和服务集成
JMS 队列资源(队列和队列连接工厂)由 JMS 点到点消息传递的缺省消息传递提供程序提供并受服务集成总线支持。
本节中稍后的图显示了具有两个成员(一个服务器和一个集群)的一条总线。这两个成员每个都有一个 JMS 队列。应用程序将信息发送至一个 JMS 队列,从另一个 JMS 队列中检索消息。在服务集成总线和 JMS 连接工厂上有队列目标。
图 1. JMS 点到点消息传递和缺省消息传递提供程序

- JMS 队列
- 术语“JMS 队列”是指与应用程序进行交互的 JMS 目标(javax.jms.Queue
的实例)以及管理员配置为缺省消息传递提供程序的 JMS 资源的 JMS 目标。
管理员可定义 JMS 队列。JMS 队列是一种管理对象, 它包括了服务集成总线上队列目标的名称。应用程序可以通过在 JNDI 名称空间中查找 JMS 队列名来获取该队列。
使用 JMS 点到点消息传递的应用程序充当使用 JMS 队列的消息的生产者和使用者,且不需要了解支持 JMS 队列的服务集成资源。
- 队列
- 术语“队列”是“队列目标”的简称,它是指为点到点消息传递配置的服务集成总线目标。
管理员将队列仅指定给总线的一个成员(应用程序服务器或服务器集群)。总线成员中的消息传递引擎主管队列的消息点(称为队列点)。队列点是总线上存储和处理队列消息的位置。
如果总线成员有多个消息传递引擎,那么会将队列在各个消息传递引擎之间进行分区。每个消息传递引擎主管队列的不同队列点。
- JMS 连接工厂
- “JMS 连接工厂”创建与消息传递引擎的连接,通过该消息传递引擎,JMS
连接工厂可以访问总线上任何位置处队列点上的消息。
使用 JMS 1.1 时,建议您对新应用程序使用独立于域的 JMS 连接工厂。为了与开发使用特定于域的队列接口的 JMS 应用程序向后兼容,支持特定于域的队列连接工厂,如 JMS 1.1 规范的 1.5 节中所述。
- 临时 JMS 队列
- 除了使用创建为管理对象的 JMS 队列外,应用程序还可以创建它自己的临时 JMS 队列,这些队列在运行时仅在连接持续时间存在。仅该连接可以创建临时 JMS 队列的消息使用者;例如,用于服务请求的 JMSReplyTo 队列。
有关创建临时 JMS 目标的更多信息,请参阅 JMS 1.1 规范的 4.43 节。
对于临时 JMS 队列,服务集成总线将创建临时目标,管理员可以列示和浏览该目标,但通常不需要对它执行操作。