JMS学习3 - JMS API的编程模型

编程模型:

1、受管对象 
JMS中有两种类型的受管对象: 
ConnectionFactory :用于创建到JMS提供商的底层消息系统的连接。 
Destination :由JMS客户端使用以指定正被发送的消息目标或正被接收的消息来源。 

2、连接 
连接也有两种形式,分别实现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);

4、消息发生器 
PTP模型的消息发生器实现的是QueueSender接口,
Pub/Sub模型的消息发生器实现的是TopicPublisher接口 
代码如下:
QueueSender queueSender = queueSession.createSender(myQueue);
TopicPublisher topicPublisher = topicSession.createPublisher(myTopic);

5、消息处理器 
PTP模型的消息处理器实现的是QueueReceiver接口。
Pub/Sub模型的消息处理器实现的是TopicSubscriber接口。 

6、消费者接收消息两种方式:
session.createConsumer()

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遗留的

posted @ 2014-06-16 22:44  princessd8251  阅读(174)  评论(0)    收藏  举报