background image

  

 

 

   在 J2EE 体系结构中,分布式事务称为全局事务,管理可恢复资源的系统称为资源

 

管理器,示例有 CICS、IMS™   

和 DB2®。这些资源管理器基于它们支持的事务分类,它们

或 者 支 持 两 阶 段 协 作 (

 

通 过 提 供 XAResource   接 口 ) 、 或 者 仅 支 持 单 阶 段 协 作 ( 通 过 

LocalTransaction 接口)、或者为非事务管理器。
  对于事务管理,资源适配器需要实现下列契约之一,这在资源适配器的部署描述符
中进行了定义(ra.xml 文件):
  XA 

——

事务

可以完全参与两阶段提交进程的资源适配器,该资源适配器可以影响全

局事务的结果。

 

   LocalTransaction——可以参与资源管理器本地事务的资源适配器(在我们的示例中是 
CICS 区域),但该资源适配器不具有任何两阶段提交事务功能。为便于清楚地说明,在本
文中(

 

以及在其他与 WebSphere 相关的出版物和论文中),我们使用术语资源管理器本地

 

事务 (RMLT) 来表示位于单个资源管理器本地的事务。
  NoTransaction——指无事务属性的资源适配器;它可以参与事务上下文,但不受事务
结果的影响(也不影响事务的结果)。
  WebSphere Application Server 事务支持为事务中任何数量的具有两阶段功能(XA 事务)
的资源管理器提供协作。它还允许在事务中没有任何其他资源管理器的情况下使用一个具
有单阶段功能的(本地事务)资源管理器。
  两阶段提交

 

   分布式事务处理的基本部分是两阶段提交进程。这是流的体系结构集,用于确保无

 

论发生什么故障,事务中的所有资源管理器都能够可靠地协作。两阶段提交由所 有事务

 

协议实现,并且基本概念在本质上是相同的。以下描述根据 XA 规范总结了流;其他协议
(

 

如 CICS   

或 LU6.2)可能对流使用不同的术语和变体。(

 

有关 CICS 同步点流的进一步详细

信息,请参阅《CICS Intercommunication Guide》,SC34-6243

 

,第 2  “

章 Recovery and restart 

in interconnected systems”。)

  在两阶段提交进程之前,事务过程中执行的所有工作都被认为是 在处理中 ,并且
在此期间如果失败将会导致工作回滚。只有在事务管理器启动两阶段提交进程时,更新才
会变得确定。

 

  图 2. 两阶段提交