文档介绍:中间件技术概论之中间件中的事务处理
李际军
05 April 2005
1
Kaiser: COMS W4156 Spring 2005
知识点
中的事务处理
J2EE中的事务处理
CORBA中的事务处理
05 April 2005
2
Kaiser: COMS W4156 Spring 2005
分布式事务处理(1)
事务特性:
原子性:事务中的所有操作是不可分割的整体;
一致性:事务前后所涉及的资源保持数据一致性;
孤立性:事务可能包含多个操作,这些操作的中间结果对其他事务不可见,一个事务只有在结束后才对其他事务产生影响.
持久性:事务一旦成功完成,其影响是持久的,不会丢失该事务的执行结果;
事务的发展经历了由集中到分散,有面向过程到面向对象的历程!
05 April 2005
3
Kaiser: COMS W4156 Spring 2005
分布式事务处理(2)
分布式事务处理:
在分布的,异构的环境中;
数据是分布的;
一个事务的执行涉及对分布在多个不同结点的数据的更改.
05 April 2005
4
Kaiser: COMS W4156 Spring 2005
X/Open DTP 模型(1)
作为分布式事务处理的模型X/Open DTP已被多个厂商采纳;
是众多规范的基础;
包括MTS,EJB,CORBA的OTS;
包括三个部分:
应用程序(Application Program AP):事务的使用者;规定事务的界限,给出事务所包含的操作;
资源管理器(Resource Manager TM):提供对共享资源的访问;
事务管理器(Transaction Manager TM):是AP和RM之间的协调员,给事务分配标识符,监视进展,保证事务顺利进行!
05 April 2005
5
Kaiser: COMS W4156 Spring 2005
X/Open DTP 模型(2)
典型事务处理过程:
应用程序通过TX接口告诉事务管理器要开始一个新事务,事务管理器负责分配全局事务ID,调用XA接口通知各资源管理器新事务开始;然后应用程序访问资源管理器;操作完成后,应用程序要求事务管理器提交事务,这时事务管理器调用XA接口协调各资源管理器进行事务的提交.
05 April 2005
6
Kaiser: COMS W4156 Spring 2005
X/Open DTP 模型(3)
X/Open DTP可以有不同的实现:
这些实现之间出现互操作问题时,munications Resource Manager CRM)处理;
CRM使用OSI TP进行不同组件之间的通信;
CRM引入三个接口:
AP和CRM之间使用TxRPC,XATMI或者CPI-C接口;
TM和CRM之间使用XA+接口;
CRM和OSI TP之间使用XAP-TP接口
05 April 2005
7
Kaiser: COMS W4156 Spring 2005
事务的类型(1)
平坦事务:所有的操作都包含在一对开始和结束事务的语句中间,这些操作属于同一级别,被认为是一个整体;
链式事务:事务的开始不要求AP显示调用tx_begin(),当前事务的结束隐含了新事务的开始,事务与事务像链条一样彼此相连;
嵌套事务:事务有不同级别,可以包含多个子事务,形成树状的事务结构,树的叶子是平坦事务,树根称为顶层事务.
05 April 2005
8
Kaiser: COMS W4156 Spring 2005
事务的类型(2):作用域角度分
全局事务
涉及多个RM的协调工作;这些RM可以是分布的;
全局事务最终映射到多个本地事务上去执行;
本地事务
每个RM自己负责的分支;
一个事务分支可以使用XID唯一的标明;XID由GTRID和BQUAL组成,分别表示全局事务标识符和分支限定符;
05 April 2005
9
Kaiser: COMS W4156 Spring 2005
两阶段提交协议(1)
分布式事务涉及多个结点数据更新,为了保证事务完整性,采用两阶段提交协议来提交;
TM向所有RM发出正式提交请求之前,先询问所有RM是否已准备好提交;
当所有的RM都给出肯定的回答后,TM才发出提交请求;若一个RM给出否定答复,TM就要RM进行回滚;
05 April 2005
10
Kaiser: COMS W4156 Spring 2005