全局事务支持与两阶段落实

为了保护和维护关键企业资源的完整性,作为“J2EE 连接器体系结构”资源适配器的 IMS Connector for Java 支持全局事务管理和两阶段落实处理。通过使用此支持,可以构建 J2EE 应用程序来将一组更改集中到一个事务或单个工作单元中,以便全部完成一个事务中的所有更改或是全部回滚这些更改。这使得应用程序能够在符合 J2EE 的应用程序服务器(例如,WebSphere® Application Server)中运行,从而以协调方式访问 IMS™ 事务和数据。全局事务管理可确保 IMS 中数据的完整性。

全局事务支持示例

当对受保护资源进行更改时,您一定想确保正确执行了更改。例如,假定您是一个银行客户,想要将资金从储蓄帐户转帐至支出帐户。并且希望确保从储蓄帐户扣除资金的同时就将资金添加到支出帐户中。您不希望此事务只完成一部分,即,从储蓄帐户中扣除了资金,而在支出帐户中未增加资金。

再举一个例子,您需要购买一张从旧金山飞往巴黎的机票,但是没有直航班机。除非您能够同时预订到从旧金山飞往芝加哥再从芝加哥飞往巴黎的机票,否则将无法飞往巴黎。也就是说,您将“回滚”飞往巴黎的决定;因为只能订到部分行程的机票对您来说没什么用处。

在这两个示例中,都需要完成几个较小的事务才能完成整个事务。如果这些事务中任何一个事务出现问题,您就不想落实整个事务(例如,转帐或飞往巴黎)。而是想回滚整个事务的每个步骤,以便不落实任何一个小事务。为了成功地转帐或飞往巴黎,您想对各个小事务进行统一管理和协调,以便完成整个事务。

为了确保经过协调的事务处理,J2EE 平台(它由 J2EE 应用程序服务器、J2EE 应用程序组件和 J2EE 连接器体系结构资源适配器组成)提供了一种分布式事务处理环境,在这种环境中,将透明地管理事务,并且会以一种协调方式在多个平台之间更新和恢复资源。

全局事务和两阶段落实支持处理

符合 J2EE 的应用程序服务器(例如,WebSphere Application Server)将 Java™ 事务管理器(也称为外部协调程序)和资源适配器(例如,IMS Connector for Java)配合使用,与应用程序组件(例如,Java servlet 或 Enterprise Java Bean(EJB))和资源管理器(例如,IMS 或 DB2®)通信,从而协调事务。

如果事务管理器只协调一个事务,则认为该事务是全局事务。如果事务管理器协调的一个事务与多个资源管理器有关,外部协调程序就会使用两阶段落实协议。

在前面的银行示例中,您想将资金从储蓄帐户转帐至支出帐户。如果储蓄帐户信息与支出帐户信息位于不同的资源管理器上(例如,储蓄帐户位于 IMS 上,而支出帐户位于 DB2 上),则应用程序服务器(WebSphere Application Server)中的事务管理器将使用两阶段落实处理来透明地协调 IMS 与 DB2 之间的更改。更具体地说,事务管理器将与 IMS 资源适配器协同工作来协调 IMS 中的更改。

IMS Connector for Java 旨在与 J2EE 平台中的 Java 事务管理器、z/OS® 的“资源恢复服务”(RRS)以及 IMS Connect 一起工作,以实现对 IMS 和其它受保护资源进行一致更改。

为了参与对 IMS 的两阶段落实处理,IMS Connector for Java 使用 IMS OTMA 同步级别同步点协议。当远程应用程序请求更改时,为了参与全局事务和两阶段落实处理,IMS 使用 z/OS 上的 RRS。

从 IMS 的角度来说,RRS 相当于一个“外部协调程序”或同步点管理器,用来协调资源的更新和恢复。IMS Connector for Java 和 IMS Connect 通过与在应用程序服务器上运行的 Java 事务管理器和 z/OS 上的 RRS 交互,以允许 J2EE 平台上运行的全局事务参与对主机上运行的 IMS 进行协调更新。

当将 J2EE 应用程序设置为参与全局事务时,必须选择可用于 IMS Connector for Java 与 IMS Connect 之间通信的两种通信协议的其中一种。IMS Connector for Java 和 IMS Connect 支持的两种通信协议是 TCP/IP 和“本地选项”。

使用 TCP/IP 的全局事务

在全局事务作用域中,J2EE 应用程序组件可以通过与 IMS Connect 建立 TCP/IP 连接来访问 IMS 事务。在底层,IMS Connector for Java 使用 X/Open(XA)协议与 Java 事务管理器交互来管理全局事务和两阶段落实处理。XA 协议定义了一组接口和交互,用来描述 Java 事务管理器与资源管理器在分布式事务处理环境中如何进行交互。IMS Connector for Java 与 IMS Connect 一起使用 XA 协议,并与 IMS 和 z/OS 上的“资源恢复服务”(RRS)协同工作来进行一致更改。

限制:必须使 RRS 与 IMS Connect 在同一 MVS™ 系统上运行。

要在 IMS Connect 上安装 RRS,请参阅 IMS Connect Guide and Reference(SC27-0946)。有关用于全局事务和两阶段落实处理的 TCP/IP 通信协议的详细信息,请参阅平台注意事项和通信协议注意事项两阶段落实环境注意事项

使用“本地选项”的全局事务

如果 J2EE 应用程序组件在 WebSphere Application Server for z/OS 上运行,则可以使用“本地选项”来提交 IMS 事务消息,并且参与全局事务处理。此事务处理由 z/OS 上的“资源恢复服务”(RRS)以及 WebSphere Application Server for z/OS 来协调。IMS Connector for Java 与 RRS 兼容,专门用于与 RRS 协同工作,以便 WebSphere 中的 Java 事务管理器与作为资源管理器的 IMS 可以一起工作来对多个受保护资源进行一致更改。当运行使用“本地选项”的全局事务时,IMS Connector for Java 不会使用 XA 协议。

限制:
  • 要运行使用“本地选项”的全局事务,WebSphere Application Server for z/OS、IMS Connect 和 IMS 必须在同一 MVS 系统中运行。
建议:
  • 使用“本地选项”以获取最佳性能。
  • 如果 WebSphere Application Server for z/OS 与 IMS 和 IMS Connect 运行于不同的 MVS 上,则必须对全局事务使用 TCP/IP。

有关用于全局事务和两阶段落实处理的“本地选项”通信协议的信息,请参阅平台注意事项和通信协议注意事项两阶段落实先决条件两阶段落实环境注意事项

有关事务支持的其它信息

本地事务

“J2EE 连接体系结构”定义 javax.resource.cci.LocalTransaction 接口,以允许资源管理器而不是事务管理器在本地协调事务。但是,IMS Connector for Java 仅支持使用事务管理器进行事务协调。因此,IMS Connector for Java 不支持 javax.resource.cci.LocalTransaction 接口。如果您调用 IMSConnection.getLocalTransaction() 方法,就会产生 NotSupportedException。要将事务支持与 IMS Connector for Java 配合使用,您需要使用 JTA 事务接口,或者在应用程序的部署描述符中设置适当的事务属性。有关更多信息,请参阅在应用程序中使用全局事务支持

一阶段落实处理

IMS Connector for Java 支持事务管理器执行一阶段落实优化。因此,如果事务作用域内的所有更改都属于同一个 IMS 资源,则事务管理器可以执行一阶段落实优化,以便事务管理器直接将第二阶段的落实请求发送至资源管理器用于落实更改,而不需要发送第一阶段的准备请求。

非全局事务处理

如果应用程序中未使用全局事务处理(例如,当事务属性设置为 TX_NOTSUPPORTED 时),则所有非全局事务处理都将使用“同步返回”(OTMA SyncLevel=None)。当落实了 IMS 事务时,就已将输出返回至客户机。

全局事务作用域中的对话式事务处理

IMS 使用对话式程序来将处理分成一系列互相关联的“客户机至程序”以及“程序至客户机”的交互(也称为迭代)。每个迭代就是一种类型的 IMS 对话式事务。当一个事务包含多个部分时,就要使用对话式处理。将单独落实或回滚组成一个大型事务的每一部分。

在下列情况下,可以运行全局事务中的对话式事务:
  • 每个迭代都在同一事务级别下运行。例如,如果第一个迭代是使用全局事务作用域处理的,则必须在全局事务级别处理该 IMS 对话式事务中的所有后续迭代。如果发出没有事务作用域的第二个迭代,则 IMS OTMA 将报告错误。
  • 在 IMS 对话中发出下一个迭代之前,必须使用落实或回滚调用来完成每个迭代。不能将多个迭代集中到单个全局事务作用域中。

有关使用全局事务支持的更多信息,请参阅位于以下网址的 IMS Connector for Java Web 页面:www.ibm.com/ims,并访问 Support 页上的 Hints and Tips。

相关概念
两阶段落实先决条件
在应用程序中使用全局事务支持
相关参考
两阶段落实环境注意事项
使用条款 | 反馈
(C) Copyright IBM Corporation 2000, 2005. All Rights Reserved.