JMS 主题资源和服务集成
JMS 主题资源(主题、主题空间、连接工厂和持久预订)由 JMS 发布/预订消息传递的缺省消息传递提供程序提供并受服务集成总线支持。
JMS 发布/预订消息传递和缺省消息传递提供程序显示在下图中:
图 1. JMS 发布/预订消息传递和缺省消息传递提供程序

- JMS 主题
- 术语“JMS 主题”是指与应用程序进行交互的 JMS 目标(javax.jms.Topic
的实例)以及管理员配置为缺省消息传递提供程序的 JMS 资源的 JMS 目标。
使用 JMS 发布/预订消息传递的应用程序充当带有 JMS 主题的消息的生产者或使用者,而且不需要了解支持 JMS 主题的其他服务集成资源。
管理员可以定义 JMS 主题。JMS 主题是一种管理对象,它包括了服务集成总线上的主题和主题空间的名称。应用程序可以通过在 JNDI 名称空间中查找 JMS 主题名来获取该主题。
JMS 应用程序可以和 JMS 主题互相发布和预订消息。仅当订户已连接到服务器时,预订应用程序才可以正常接收发布到主题的消息。
缺省消息传递提供程序也支持使用对主题持久预订,这允许订户接收在订户断开连接时发布的消息。有关持久预订的更多信息,请参阅 JMS 1.1 规范的 6.11.1 节。
- 主题空间
- 主题空间(主题的分层集合)是服务集成总线上的一个虚拟位置,将在此位置存储和处理消息以进行发布/预订消息传递。
与配置队列不同,管理员不需要将主题空间指定给总线成员。主题空间具有为总线中的每个消息传递引擎自动定义的发布点。主题空间的消息存储在它的所有发布点上,并且也是在这些发布点上进行处理的。
- 主题
- 术语“主题”是指主题空间中的鉴别器。
当预订主题时,应用程序可以指定通配符以选择一系列主题。
- JMS 连接工厂
- “JMS 连接工厂”创建与消息传递引擎的连接,该消息传递引擎为主题空间提供发布点。
使用 JMS 1.1 时,建议您对新应用程序使用独立于域的 JMS 连接工厂。为了与开发使用特定于域的主题接口的 JMS 应用程序向后兼容,支持特定于域的主题连接工厂,如 JMS 1.1 规范的 1.5 节中所述。
- 临时 JMS 主题
- 除了使用创建为管理对象的 JMS 主题外,应用程序还可以创建它自己的临时 JMS 主题,这些主题在运行时仅在连接持续时间存在。仅该连接可以创建临时 JMS 主题的消息使用者。
有关创建临时 JMS 目标的更多信息,请参阅 JMS 1.1 规范的 4.43 节。
对于临时 JMS 主题,服务集成总线将创建临时主题空间,管理员可以列示和浏览该主题空间,但通常不需要对它执行操作。关闭连接后,就会自动删除临时主题空间。
- 持久预订
- JMS 主题上的持久预订允许订户接收发布到该主题的所有消息的副本,也包括订户未连接至服务器的时间段期间发布的消息。因此,与服务器断开连接很长一段时间时仍可以执行订户应用程序,然后可再重新连接到服务器并处理在缺少订户应用程序期间已发布的消息。如果应用程序创建了持久预订,那么此持久预订将添加到列表,管理员通过管理控制台能显示该列表并对其进行操作。