Sun Java System Message Queue 3.7 UR1 技术概述

特定于域的 API 及统一域 API

JMS API 定义可用于实现点对点域或发布/订阅域的接口和类。这些是表 2–1 的第 2 列和第 3 列中显示的特定于域的 API。JMS API 还定义另外一个统一域,用于通过编程实现常规的消息传送客户端。这类客户端的行为由目的地类型决定,客户端向目的地中生成消息并使用目的地中的消息。如果该目的地是一个队列,则消息传送行为将为点对点模式;如果该目的地是一个主题,则消息传送行为将为发布/订阅模式。

表 2–1 JMS 编程域和对象

基本类型(统一域) 

点对点域 

发布/订阅域 

Destination(队列或主题)

Queue

Topic

ConnectionFactory

QueueConnectionFactory

TopicConnectionFactory

Connection

QueueConnection

TopicConnection

Session

QueueSession

TopicSession

MessageProducer

QueueSender

TopicPublisher

MessageConsumer

QueueReceiver

TopicSubscriber

统一域通过 JMS 版本 1.1 引入。 如果需要遵守早期的 1.02b 规范,则可以使用特定于域的 API。使用特定于域的 API 还能够提供全新编程接口,可以防止出现某些类型的编程错误:例如,为队列目的地创建长期订户。但是,特定于域的 API 的缺点是,不能在同一事务或同一会话中将点对点和发布/订阅操作相结合。如果需要执行该操作,则应选择统一域 API。有关将两种域相结合的示例,请参见请求-回复模式