XAConnectionFactory 对象是JMS 受管理对象,就像ConnectionFactory 对象。期望用应
用服务器使用JNDI 找到它们。
8。4 XAConnection
XAConnection 通过提供创建XASession 扩展了Connection 的能力。
8。5 XASession
XASession 提供了获取看起来象普通 Session 对象的对象和控制会话事务上下文的
javax。transaction。xa。XAResource 对象。XAResource 的功能非常类似于标准X/Open XA 资源接
口定义的功能。
应用服务器通过获取XAResource 来控制XASession 的事务分配。它使用XAResource 来
将会话分配给分布式事务,准备和提交事务上的工作等等。
XAResource 为多事务上的交叉工作、恢复处理中的事务列表等等提供了公平的专业工
具。JTA 感知的JMS 提供上必须全部实现这个功能。这可以通过使用支持XA 的数据库服务
来做到,或者JMS 提供商可以选择从基础开始来实现这个功能。
将XASession 的Session 赋给应用服务器的客户端。之后,应用服务器控制后台XASession
的事务管理。
但必须注意的是,分布式事务上下文不会随着消息流动;也就是说,接收消息的事务和
和生产消息的事务不能是同一个。这是异步消息和同步处理间的基本差别。消息生产者和消
费者使用两种方式来建立JMS 提供商保证一次只有一个消息被转发的能力。
再次重申,在Session 中生产和/或消费消息的行为都可以是事务性的。在不同会话间生
产和消费一个特定消息的行为不能是事务性的。
8。6 JMS 应用服务器接口
PTP 和Pub/Sub 两个域都提供了它们自己的JTS 感知的JMS 工具。
但是,应当优先使用公共接口。表8? 列出了JMS 的公共接口。
表8? 域内可选接口的关系
JMS 公共接口 PTP 接口 Pub/Sub 接口
ServerSessionPool 没有域特定的接口 没有域特定的接口
ServerSession 没有域特定的接口 没有域特定的接口
ConnectionConsumer 没有域特定的接口 没有域特定的接口
XAConnectionFactory XAQueueConnectionFactory XATopicConnectionFactory
54 / 66
…………………………………………………………Page 55……………………………………………………………
XAConnection XAQueueConnection XATopicConnection
XASession XAQueueSession XATopicSession
9 JMS 样例代码
本章给出了一些展示JMS 客户端如何使用JMS API 的代码样例。也解释了如何使用几个
消息类型。这些例子使用了支持统一消息模型的方法:这些例子使用点对点或发布/订阅进
行工作。用JMS API 进行工作是推荐的方式。
在JMS 规范的早期版本中,只支持消息域(点对点或发布/订阅)各自的接口,且客户
端要么使用点对点要么使用发布/订阅来进行编程。现在,JMS 客户端可以使用JMS 公共接
口进行编程。
在例子中,客户端应用发送和接收股票报价信息。客户端应用从股票报价服务中接收消
息。股票报价服务在这个例子中没有描述。
为了简化这个例子,没有对异常进行处理。
本章描述了为发送和接收消息而创建正确环境的步骤。
在描述了基本的功能后,本章描述如何执行一些其他的公共功能,例如使用消息选择器。
9。1 准备发送和接收消息
下面是建立连接然后准备发送和接收消息的基本步骤。
z 获得ConnectionFactory 和Destination。
z 创建Connection 和Session 。
z 创建MessageConsumer。
z 创建MessageProducer。
9。1。1 获取ConnectionFactory
消息生产者和消息消费者(发送者和接收者)都需要得到ConnectionFactory,并使用它
来建立Connection 和Session 。
通常,管理员已经为JMS 客户端创建和配置好了ConnectionFactory 。客户端程序通常使
用JNDI API 来查找ConnectionFactory 。
import javax。naming。*;
import javax。jms。*;
ConnectionFactory connectionFactory;
Context messaging = new InitialContext();
connectionFactory = (ConnectionFactory)
messaging。lookup(〃ConnectionFactory〃);
55 / 66
…………………………………………………………Page 56……………………………………………………………
9。1。2 获取Destination
管理员已经创建和配置了一个名字为“StockQueue ”的Queue,它是股票报价消息被发
送和接收的地方。同样,可以使用JNDI API 来查找目的地。
Queue stockQueue;
stockQueue = (Queue)messaging。lookup(〃StockSource〃);
9。1。3 创建Connection
在得到ConnectionFactory 之后,客户端程序使用它来创建Connection 。
Connection connection;
connection = ConnectionFactory。createConnection();
9。1。4 创建Session
在得到 Connection 之后,客户端程序使用它来创建 Session 。这个 Session 用于创建
MessageProducer (发送消息)或MessageConuser (接收消息)。
Connection。createSession 方法有两个参数:
z 一个表示会话是否是事务性的布尔。
z 消息确认模式。
Session session;
/* Session is not transacted;
* uses AUTO_ACKNOWLEDGE for message
* acknowledgement
*/
session = connection。createSession(false; Session。AUTO_ACKNOWLEDGE);
9。1。5 创建MessageProducer
在得到 Session 后,客户端程序使用 Session 来创建 MessageProducer 。这个
MessageProducer 对象用于向目的地发送消息。通过使用Session。createProducer 方法来创建
MessageProducer,参数是消息被发送的目的地。
MessageProducer sender;
/* Value in stockQueue previously looked up in the JNDI
* createProducer takes a Destination
*/
sender = session。createProducer(stockQueue);
9。1。6 创建MessageConsumer
消息可以被同步或异步的消费。这个例子展示了如何创建同步消费消息的消息消费者。
56 / 66
…………………………………………………………Page 57……………………………………………………………
参见9。3。1 “异步接收消息”了解如何异步消费消息。
MessageConsumer
小说推荐
- php程序设计简明教程(DOC格式)
- -Page 1-PHP 程序设计简明教程PHP 讲义 第 1 页 共 90 页-Page 2-目录序 4第一章 PHP 简介 6
- 最新章:第31章
- C语言实例教程(PDF格式)
- -Page 1-前 言Visual C+是开发运行于Windows 95和Windows NT环境下的Win32应用程序的可视化编程工具中最重要的成员之一,它为软件开发人员提供了完整的编辑、编译和调试工具和建立于Win32 API(ApplicationProgramming Interface)基
- 最新章:第143章
- 软件工程实践者的思想(PDF格式)
- -Page 1-大 道 至 简—软件工程实践者的思想周爱民(Aimingoo 著-Page 2-序2004 年 11 月初爱民(Aimingoo)第一次把他的书稿给我,我翻看了一下,第一反应讲的是感想。这不错,在技
- 最新章:第26章
- C语言游戏编程从入门到精通(PDF格式)
- -Page 1-Page 2-Page 3-Page 4-Page 5-Page 6-Page 7-Page 8-Page 9-Page 10-Page 11-Page 12-Page 13-Page 14
- 最新章:第4章
- Java编程思想第4版[中文版](PDF格式)
- -Page 1-Page 2《Thinking In Java》中文版作者:Bruce Eckel主页:http/BruceEckel.编译:Trans Bot主页:http/memberease~transbot致谢-献给那些直到现在仍在孜孜不倦创造下一代计算机语言的人们!指导您利用万维网的语言进
- 最新章:第295章
- JSP入门教程(DOC格式)
- -Page 1-jsp 入门教程0.0.1版权(c 2008 叮咚老菜鸟叮咚对文档的任何问题或建议,请给叮咚发邮件或留言。QQ:475784337QQ 群:51239192MSN:lingirl6@hotmail.EMAIL:lingirl6@hotmail.2008-02-28 20:05:061
- 最新章:第37章
- asp基础实用教程(DOC格式)
- 目 录一、关于ASP二、ASP的新功能三、创建ASP页四、使用脚本语言五、使用变量和常量六、使用集合七、ASP内建对象八、向浏览器发送内容九、包含文件十、访问数据库十一、调试ASP脚本十二、维护ASP应用程序的安全一、关于ASP Active Server Pages(ASP)是服务器端脚本编写环境
- 最新章:第17章
- SQL语言艺术(PDF格式)
- -Page 1-SQLSSQQLL语言艺术内容介绍本书分为12章,每一章包含许多原则或准则,并通过举例的方式对原则进行解释说明。这些例子大多来自于实际案例,对九种SQL经典查询场景以及其性能影响讨论,非常便于实践,为你数据库应用维护人员阅读。资深 SQL 专家 Stéphane Faroult倾力打
- 最新章:第27章
- oracle从入门到精通(PDF格式)
- -Page 1-Oracle 从入门到精通-Page 2-资源来自网络,仅供学习 Oracle 从入门到精通一、SQL 8
- 最新章:第37章