分布式事务处理
X/OPEN 分布式事务处理 (DTP) 包括三个软件部分 :
应用程序 (AP) 定义事务的起始及组成事务的动作
资源管理器 (RM) 提供对共享资源的访问,如数据库或文件系统
事务器 (TM) 为各事务指定标识符,监控事务过程,负责事务的完成及故障恢复
其中存在如下三种接口:
1. 应用程序使用各资源管理器提供的接口访问其资源,如 DB2 的 Embeded SQL , Oracle 的 Pro*C 等;
2. 应用程序使用事务管理器提供的接口来定义事务的起始和提出对事务的提交和回滚,如 CICS 提供的服务器端 API ;
3. 事务管理器和资源管理器使用特定接口来互换事务信息,即所谓的 XA 接口规范 。
全局事务 :
在分布式事务处理环境中,任何资源管理器都必须支持事务,以其自己的方式实现内部可恢复的一组操作,同时,这些资源管理器也有相应的功能支持跨资源管理器的一组操作,此即全局事务。例如,一个应用程序可以对不同的几个数据库更新数据,在系统中任何地方发生的任何操作必须自动形成一个全局事务,同时提交或回滚。每个资源管理器只知道全局事物的属于自己的一部分,只有事务管理器可以知道全局事务所有部分的状态,所以,资源管理器必须同意让事务管理器来协调各部分可恢复的操作。
在全局事务中,一个资源管理器能否最终提交不但要看自己内部的操作能否成功,也必须依赖其他资源管理器能否成功。如果任何操作在任何地方失败,任何参与此全局事务的资源管理器必须回滚此全局事务在自己内部所做的任何操作。一个特定的资源管理器一般无法知道其他资源管理器的情况,事务管理器会通知其根据其他资源管理器的状态做相应动作。资源管理器负责将其自身的事务与全局事务联系起来。