
1、受管对象
JMS中有两种类型的受管对象:
ConnectionFactory :用于创建到JMS提供商的底层消息系统的连接。
Destination :由JMS客户端使用以指定正被发送的消息目标或正被接收的消息来源。
连接也有两种形式,分别实现QueueConnection接口和TopicConnection接口。例如我们可以用J2EE平台的默认连接产生地创建连接。
QueueConnection queueConnection = queueConnectionFactory.createQueueConnection();
TopicConnection topicConnection = topicConnectionFactory.createTopicConnection();
3、会话
会话的两种形式是分别实现了QueueSession接口和TopicSession接口。
用QueueConnection对象创建QueueSession会话,代码如下:
QueueSession queueSession = queueConnection.createQueueSession(true, 0);
用TopicConnection对象创建TopicSession会话,代码如下:
TopicSession topicSession = topicConnection.createTopicSession(false, Session.AUTO_ACKNOWLEDGE);
PTP模型的消息发生器实现的是QueueSender接口,
Pub/Sub模型的消息发生器实现的是TopicPublisher接口
代码如下:
QueueSender queueSender = queueSession.createSender(myQueue);
TopicPublisher topicPublisher = topicSession.createPublisher(myTopic);
5、消息处理器
PTP模型的消息处理器实现的是QueueReceiver接口。
Pub/Sub模型的消息处理器实现的是TopicSubscriber接口。
1>、consumer.receive() 或 consumer.receive(int timeout)。
2>、注册一个MessageListener。
JMS接口描述
JMS 支持两种消息类型PTP 和Pub/Sub,分别称作:PTP Domain 和Pub/Sub Domain,这两种接口都继承统一的JMS Parent 接口,JMS 主要接口如下所示:
JMS Parent |
PTP Domain |
Pub/Sub Domain |
ConnectionFactory |
QueueConnectionFactory |
TopicConnectionFactory |
Connection |
QueueConnection |
TopicConnection |
Destination |
Queue |
Topic |
Session |
QueueSession |
TopicSession |
MessageProducer |
QueueSender |
TopicPublisher |
MessageConsumer |
QueueReceiver |
TopicSubscriber |
以下是对这些接口的简单描述:
ConnectionFactory:连接工厂,JMS 用它创建连接
Connection:JMS 客户端到JMS Provider 的连接
Destination:消息的目的地
Session:一个发送或接收消息的线程
MessageProducer: 由Session 对象创建的用来发送消息的对象
MessageConsumer: 由Session 对象创建的用来接收消息的对象
1。1就直接使用顶级接口,queue/topic相关的接口是1.0遗留的