中间件_7事务.ppt_第1页
中间件_7事务.ppt_第2页
中间件_7事务.ppt_第3页
中间件_7事务.ppt_第4页
中间件_7事务.ppt_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、第七章 中间件中的事务处理,X/OPEN DTP模型,是众多规范(MTS,EJB,CORBA的OTS)的基础 组成 应用程序(AP):事务使用者,是开始,提交,回滚事务的发出者 资源管理器(RM):提供对共享资源的访问,DBMS或文件访问系统 事务管理器(TM):AP,RM之间的协调员,给每个事务分配标识符,监视其进展,负责失败时的恢复 通信资源管理器(CRM):在不同模型之间实现互操作,X/OPEN DTP模型,应用程序 AP,资源管理器 RM,事务管理器 TM,TX,XA,RM使用API,TX接口:AP利用其向TM发出开始和结束一个事务的请求 XA接口:TM利用其使各RM合作完成一个全局事

2、务,包括事务的协调,提交和恢复 xa_:RM-TM ax_: TM-RM 两阶段提交协议是XA接口中一部分,应用程序 AP,资源管理器 RM,事务管理器 TM,1 TX:开始一个新事务,2 调用XA:通知各RM一个新事务开始,3 AP访问RM,如执行SQL语句,4 提交事务,5 协调各RM进行事务的提交,采用CRM的模型,作用:实现模型不同实现的互操作 定义:通信资源管理器 见P102,事务类型,平坦: 所有的操作包含在一对开始与结束事务的语句中间 所有操作处于同一级别 AP调用tx_begin()开始 链式 不要求AP显式调用tx_begin() 当前事务的结束隐含了新事务的开始 嵌套 事务

3、具有不同级别,一个事务可以包含多个子事务 一个事务的回滚导致其所有子事务的回滚 一个子事务能否被成功提交不仅取决于它自己,还要求它的所有祖先事务都能成功提交,事务分类按作用域分,全局事务 涉及多个RM的协同工作 本地事务 每个RM自己负责的分支事务 一个全局事务最终将映射到多个本地事务上去执行,两阶段提交,为了保证事务的完整性,分布式事务通常采用两阶段提交协议(Two Phase Commitment Protocol,简称2PC)来提交。 两阶段提交协议的思路: TM向所有RM发出正式提交请求之前,先询问所有RM是否已准备好提交, 仅当所有的RM都给出肯定的回答时,TM才发出提交的请求; 如

4、果其中有一个RM给出否定地回答,TM就指示所有的RM进行回卷。,阶段1(准备阶段) TM询问所有的RM是否已准备提交。 阶段2(提交阶段) TM检查所有RM的回答,只要有一个RM给出否定的回答,TM指示所有的RM进行回滚。否则, TM指示所有的RM进行提交。,Coordiantor:一个主节点,掌握提交或撤消事务的决定权 Participants:其他节点,各自负责本地数据的更新,并向协调者提出撤消或提交子事务的意向。 一般一个结点对应一个子事务。,7.2 COM+技术中的事务服务,事务对象处理体系:COM+组件对象,分布式事务协调器(DTC),环境对象,RM,组成,COM+组件:执行事务操作

5、的主体 COM+系统根据COM+组件对象提出的事务特征要求建立合适的事务操作环境 事务根:创建某个事务的组件对象 是事务的创建者和拥有者 决定事务的生存期 DTC 完成对参与事务的各个组件对象的工作状态的监测,收集,处理 根据表决结果,给出裁决 调度RM进行永久化操作,组成,环境对象 COM+系统在事务发生时根据组件对象要求为每个对象建立事务操作环境 是组件对象与DTC进行通信的媒介 RM 跨COM+事务并管理持久系统状态的软件 资源分发器(dispenser) 代表 MTS 应用来管理非持久的共享的数据,基客户,DTC,COM+服务系统,基客户,一 创建事务(事务根对象创建): 1 基客户调

6、用具有事务属性的COM+组件 2 COM+获得DTC,要求DTC为组件对象创建一个具GUID的事务,基客户成为事务根,DTC,1,2,4 COM+自动将当前对象的事务传递给新对象 5 当组件对象进行业务操作时,就会和RM建立连接,同时RM检查组件对象的环境,从而知道组件所参与的事务 6 局部RM加入到事务中(RM与DTC交互),基客户,DTC,3,4,5,6,二:其他对象建立 3 事务根使用CoCreateInstance或IObjectContext:CreateInstance创建参与事务的其他对象,7 组件代码根据自己的执行情况设置自己的两个环境位,向DTC表明自己意见 8 事务根对象的

7、“结束位”设置将引起DTC对事务给出“回滚”或“提交”的裁决 9 DTC做出决议后,向每个对象相连的RM发出做好对资源进行持久化的准备通知,或直接通知所有RM放弃对资源的操作,DTC,7,8,9,10 若DTC要求对事务提交,则两阶段 10.1 提交准备:DTC将提交的消息发布给所有的RM,要求做好准备 10.2 正式提交:若所有RM都返回做好准备的消息,则正式通知所有RM进行实际提交,否则DTC通知所有RM放弃事务,DTC,10.1 10.2,10.2,7.4 CORBA的OTS,OTS组成 OTS中的接口 对象事务服务流程,OTS,OTS (Object Transaction Servi

8、ce)是另一种分布式事务处理模型,由OMG制定规范 基于X/Open DTP,用IDL 接口代替TX,XA接口 不同对象在IIOP上进行通信 可与X/Open DTP 模型进行互操作,OTS(Object Transaction Service ),与X/Open DTP模型区别: 面向对象与过程,事务服务,包含TM功能,组成,事务客户(AP) 发起或结束事务。调用事务服务上的API 调用操作 事务对象(部分RM): 不负责事务性资源管理 不关心登记资源和执行两阶段提交 包括可被请求修改的永久性资源 只可以回滚方式终止一个事务 可恢复对象(部分RM) 继承了事务对象接口 与事务对象区别:事务对

9、象不直接操作资源 通过向事务服务登记资源来体现其资源管理职责 可恢复服务器 事务服务:用于为客户和服务器提供应用接口 事务环境:,可恢复对象和资源,部分地相当于RM 可恢复对象:对象状态受事务提交或回卷影响的对象 资源:可能被一个事务改变其状态的数据 可恢复对象参与两步提交协议时会将一个资源对象注册到OTS,OTS向注册到事务的资源对象发送请求以完成两步提交协议,可恢复服务器,由实现可恢复对象接口和资源接口的对象组成 类似于X/OPEN DTP模型中的TM与RM交互的XA接口,事务环境,用于为客户和服务器提供应用接口 一个客户发起一个事务后,对事务对象的操作处于该事务中;通过事务环境,事务对象

10、可获知其所处的事务,事务服务,事务服务定义的组件包括 事务发起者:TransactionFactory,Control,Terminator,Current 可恢复服务器:Control,Coordinator,RecoveryCoordinator,Current 事务服务本身: Resource,SubtransactionAwareResource, Synchonization,SubTransactionAwareResource,CosTransaction:Resource,CosTransaction:TransactionObject,具有嵌套行为的可恢复服务器,可恢复服务器

11、A,可恢复服务器B,Current,Coordinator,1 begin,2 pay_out,11 commit,4 register_resource,5 pay_in,6 get_control,7 register_resource,8 commit,9 prepare,9 prepare,10 prepare,3 get_control,12 commit,CORBA事务服务,1)事务处理的启动,执行,结束 1 客户启动事务处理,调用current对象上的begin方法 2 客户调用可恢复服务器(对象)A中操作pay_out,将给定数额的资金从银行A转出 3 4 银行A的可恢复服务器

12、注册资源。A调用current对象中的操作get_control,得到coordinator对象的对象引用。然后再调用coordinator对象中的操作register_resource进行注册,登记为事务的参与者 5 客户调用B中的操作pay_in,将给定数额的资金传人银行B的同一帐户中 6 7 银行B的可恢复服务器注册资源 8 客户结束事务处理,客户调用current对象中的commit操作,宣布事务结束,(2)执行两阶段确认协议 9 10 第一阶段:Coordinator对象协调所有参与事务的可恢复服务器中的操作prepare。返回参数中的投票值(vote_commit或vote_rol

13、lback)反映了执行事务后的结果。若均返回确认,表示成功执行了事务 11 12 第二阶段:根据投票结果,Coordinator对象向所有参与者发出调用操作commit或rollback命令(当前为commit),1 begin,2 pay_out,3 get_control,Register_resource,4 pay_in,5 get_control,Register_resource,6 commit,7 prepare,prepare,8 commit,commit,客户,Source resource,Target resource,current,OTS,1 客户启动事务处理,每

14、个活动事务维持一个current对象 2 客户向银行A的对象借债 3 银行A的可恢复对象注册其资源: 1)get_control获得coordinator对象的标记,然后调用register_resource向该事务的协调器对象注册,4 客户向银行B贷款 5 银行B的可恢复对象注册资源 6 客户发出确认 7 协调器执行两段式确认的第一阶段,调用每个协调者的prepare方法 8协调器执行两段式确认的第二阶段,协调者告诉所有参与者确认,7.3 J2EE中的事务体系结构,框架 JTS JTA JTA事务接口 JTA应用程序接口 X/Open XA资源管理接口,事务服务,J2EE包括了两套规范,用来

15、支持分布式的事务 Java Transaction Service(JTS), 规定了支持JTA的事务管理器的实现规范 Java Transaction API(JTA), 是一种高层的,与实现无关的,与协议无关的API,应用程序和应用服务器可以使用JTA来访问事务。 作为J2EE平台实现的一部分,SUN实现了一个支持JTS的事务管理器,同时还实现了JTA。,JTS,JTS规范定义了事务管理器的实现。 JTS规范中定义的事务管理器在高层支持JTA接口规范,在底层则实现了OTS1.1(CORBA Object Transaction Service)的标准Java映射。该映射是由org.omg.

16、CosTransactions and org.omg.CosTSPortability包定义 JTS事务管理器之间可以使用IIOP (Internet InterORB协议)来生成并传播事务上下文。,JTS框架,高层支持JTA接口规范,底层实现了的标准Java映射,JTS组成,企业级Java中间件的分布式事务服务包括五层: 事务管理器(Transaction Manager) 应用服务器(Application Server) 资源管理器(Resource Manager) 应用程序(Application Program) 通信资源管理器(Communication Resource Ma

17、nager) 每一层都通过实现一组事务API和相关机制参与到分布式事务处理系统中。,与OTS的对应关系,事务管理器是整个结构中的核心部件,是一个JTS的实现 Application Server: 应用开发者可以开发和部署应用组件进应用服务器,用于初始和管理事务。 Application Components: 是事务资源和完成业务事务的客户程序 部署于应用服务器 依赖于所处的应用服务器,这些组件可以直接或间接初始化和操作事务资源 Resource Manager: 是一个X/OPEN XA的组件,可管理持久性和稳定的存储系统,参与到两阶段提交和恢复协议 Communication Resou

18、rce Manager:允许参与由其他事务管理器创建的事务,JTA,JTA的目的是定义事务管理器所要求的本地Java接口,从而在企业级分布计算环境中支持事务管理。,JTA描述的事务模型,应用程序,应用服务器,JTA XA 资源管理,JTA 应用程序接口,JTA 事务管理,JTA事务管理接口,提供一组被应用服务器使用的接口,管理事务的开始和完成,以及事务的同步和传播 Transaction:封装一个事务 由事务管理器创建 Commit(),rollback(),getStatus() TransactionManager:由应用服务器使用来管理事务 Synchronization:启用准备提交之前和提交或回滚之后的通告 Status:定义一组静态常量指示事务的状态,JTA应用程序接口,作用:为事务管理提供了供应用程序使用的编程接口 UserTranscation,控制事务边界,应用服务器,JTA XA 资源管理,X/Open XA资源管理接口,为事务管理器提供了一种与资源交互的标准途径 使用XAResource, Xid接口 XAResource 是事务与资源管理器之间的标准X/Open接口的java映射 XAResource接口定义了分布式事务处理环

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论