




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、山东大学计算机科学与技术学院第七章第七章 中间件中的事务处理中间件中的事务处理山东大学计算机科学与技术学院X/OPEN DTP模型模型是众多规范是众多规范(MTS,EJB,CORBA的的OTS)的基础的基础组成组成 应用程序应用程序(AP):事务使用者,是开始,提交,回滚事务的发出者:事务使用者,是开始,提交,回滚事务的发出者 资源管理器资源管理器(RM):提供对共享资源的访问,:提供对共享资源的访问,DBMS或文件访问系统或文件访问系统 事务管理器事务管理器(TM):AP,RM之间的协调员,给每个事务分配标识符,之间的协调员,给每个事务分配标识符,监视其进展,负责失败时的恢复监视其进展,负责
2、失败时的恢复 通信资源管理器通信资源管理器(CRM):在不同模型之间实现互操作:在不同模型之间实现互操作山东大学计算机科学与技术学院X/OPEN DTP模型模型应用程序 AP资源管理器RM事务管理器TMTXXARM使用API山东大学计算机科学与技术学院TX接口:接口:AP利用其向利用其向TM发出开始和结束一个事务的请求发出开始和结束一个事务的请求XA接口:接口:TM利用其使各利用其使各RM合作完成一个全局事务,包括合作完成一个全局事务,包括事务的协调,提交和恢复事务的协调,提交和恢复 xa_:RM-TM ax_: TM-RM 两阶段提交协议是两阶段提交协议是XA接口中一部分接口中一部分 山东大
3、学计算机科学与技术学院应用程序 AP资源管理器RM事务管理器TM1 TX:开始一个新事务2 调用XA:通知各RM一个新事务开始3 AP访问RM,如执行SQL语句4 提交事务5 协调各RM进行事务的提交山东大学计算机科学与技术学院采用采用CRM的模型的模型作用作用:实现模型不同实现的互操作实现模型不同实现的互操作定义定义:通信资源管理器通信资源管理器见见P102山东大学计算机科学与技术学院事务类型事务类型平坦:平坦: 所有的操作包含在一对开始与结束事务的语句中间所有的操作包含在一对开始与结束事务的语句中间 所有操作处于同一级别所有操作处于同一级别 AP调用调用tx_begin()开始开始链式链式
4、 不要求不要求AP显式调用显式调用tx_begin() 当前事务的结束隐含了新事务的开始当前事务的结束隐含了新事务的开始嵌套嵌套 事务具有不同级别,一个事务可以包含多个子事务事务具有不同级别,一个事务可以包含多个子事务 一个事务的回滚导致其所有子事务的回滚一个事务的回滚导致其所有子事务的回滚 一个子事务能否被成功提交不仅取决于它自己,还要求它的所有祖一个子事务能否被成功提交不仅取决于它自己,还要求它的所有祖先事务都能成功提交先事务都能成功提交山东大学计算机科学与技术学院事务分类事务分类按作用域分按作用域分全局事务全局事务 涉及多个涉及多个RM的协同工作的协同工作本地事务本地事务 每个每个RM自
5、己负责的分支事务自己负责的分支事务一个全局事务最终将映射到多个本地事务上去执行一个全局事务最终将映射到多个本地事务上去执行山东大学计算机科学与技术学院两阶段提交两阶段提交为了保证事务的完整性,分布式事务通常采用两阶段为了保证事务的完整性,分布式事务通常采用两阶段提交协议提交协议(Two Phase Commitment Protocol(Two Phase Commitment Protocol,简称,简称2PC)2PC)来提交。来提交。两阶段提交协议的思路:两阶段提交协议的思路: TMTM向所有向所有RMRM发出正式提交请求之前,先询问所有发出正式提交请求之前,先询问所有RMRM是否已准备是
6、否已准备好提交,好提交, 仅当所有的仅当所有的RMRM都给出肯定的回答时,都给出肯定的回答时,TMTM才发出提交的请求;才发出提交的请求; 如果其中有一个如果其中有一个RMRM给出否定地回答,给出否定地回答,TMTM就指示所有的就指示所有的RMRM进行回进行回卷。卷。 山东大学计算机科学与技术学院阶段阶段1 1(准备阶段)(准备阶段) TMTM询问所有的询问所有的RMRM是否已准备提交。是否已准备提交。阶段阶段2 2(提交阶段)(提交阶段) TMTM检查所有检查所有RMRM的回答,只要有一个的回答,只要有一个RMRM给出否定的给出否定的回答,回答,TMTM指示所有的指示所有的RMRM进行回滚。
7、否则,进行回滚。否则, TMTM指示所有指示所有的的RMRM进行提交。进行提交。山东大学计算机科学与技术学院CoordiantorCoordiantor: :一个主节点一个主节点, ,掌握提交或撤消事务的决掌握提交或撤消事务的决定权定权Participants:Participants:其他节点其他节点, ,各自负责本地数据的更新,各自负责本地数据的更新,并向协调者提出撤消或提交子事务的意向。并向协调者提出撤消或提交子事务的意向。一般一个结点对应一个子事务。一般一个结点对应一个子事务。 山东大学计算机科学与技术学院写begin commit到日志等待参与者返回意见有要求撤消?写commit到日
8、志写abort到日志提交撤消写end transaction到日志准备提交?处理本地事务写abort到日志 建议撤消写ready到日志 同意提交写commit到日志,并提交本地撤消本地提交等待提交全局撤消?写abort到本地日志全局撤消ACK全局提交参与者协调者山东大学计算机科学与技术学院7.2 COM+技术中的事务服务技术中的事务服务事务对象处理体系:事务对象处理体系:COM+组件对象,分布式事组件对象,分布式事务协调器务协调器(DTC),环境对象,环境对象,RM山东大学计算机科学与技术学院组成组成COM+组件:执行事务操作的主体组件:执行事务操作的主体 COM+系统根据系统根据COM+组件
9、对象提出的事务特征要求建立合适的组件对象提出的事务特征要求建立合适的事务操作环境事务操作环境 事务根:创建某个事务的组件对象事务根:创建某个事务的组件对象 是事务的创建者和拥有者 决定事务的生存期DTC 完成对参与事务的各个组件对象的工作状态的监测,收集,处理完成对参与事务的各个组件对象的工作状态的监测,收集,处理 根据表决结果,给出裁决根据表决结果,给出裁决 调度调度RM进行永久化操作进行永久化操作山东大学计算机科学与技术学院组成组成环境对象环境对象 COM+系统在事务发生时根据组件对象要求为每个对象建立事系统在事务发生时根据组件对象要求为每个对象建立事务操作环境务操作环境 是组件对象与是组
10、件对象与DTC进行通信的媒介进行通信的媒介RM 跨跨COM+事务并管理持久系统状态的软件事务并管理持久系统状态的软件资源分发器(dispenser) 代表代表 MTS 应用来管理非持久的共享的数据应用来管理非持久的共享的数据 山东大学计算机科学与技术学院基客户表决位结束位根对象环境。根对象表决位结束位A对象环境。对象A表决位结束位B对象环境。对象BRM管理的资源A对象连接的RMRM管理的资源B对象连接的RMRM管理的资源根对象连接的RMDTCCOM+服务系统山东大学计算机科学与技术学院基客户一 创建事务(事务根对象创建):1 基客户调用具有事务属性的COM+组件2 COM+获得DTC,要求DT
11、C为组件对象创建一个具GUID的事务,基客户成为事务根表决位结束位根对象环境。根对象DTC12山东大学计算机科学与技术学院4 COM+自动将当前对象的事务传递给新对象5 当组件对象进行业务操作时,就会和RM建立连接,同时RM检查组件对象的环境,从而知道组件所参与的事务6 局部RM加入到事务中(RM与DTC交互)基客户表决位结束位根对象环境。根对象DTC表决位结束位A对象环境。对象ARM管理的资源A对象连接的RM3,456二:其他对象建立3 事务根使用CoCreateInstance或IObjectContext:CreateInstance创建参与事务的其他对象山东大学计算机科学与技术学院7
12、组件代码根据自己的执行情况设置自己的两个环境位,向DTC表明自己意见8 事务根对象的“结束位”设置将引起DTC对事务给出“回滚”或“提交”的裁决9 DTC做出决议后,向每个对象相连的RM发出做好对资源进行持久化的准备通知,或直接通知所有RM放弃对资源的操作DTC表决位结束位A对象环境。对象A7表决位结束位根对象环境。根对象8RM管理的资源A对象连接的RM9山东大学计算机科学与技术学院10 若DTC要求对事务提交,则两阶段10.1 提交准备:DTC将提交的消息发布给所有的RM,要求做好准备10.2 正式提交:若所有RM都返回做好准备的消息,则正式通知所有RM进行实际提交,否则DTC通知所有RM放
13、弃事务DTCRM管理的资源A对象连接的RM10.1 10.210.2山东大学计算机科学与技术学院7.4 CORBA的的OTSOTS组成组成OTS中的接口中的接口对象事务服务流程对象事务服务流程山东大学计算机科学与技术学院OTSOTS (Object Transaction Service)是另一种分布是另一种分布式事务处理模型式事务处理模型,由由OMG制定规范制定规范基于基于X/Open DTP,用用IDL 接口代替接口代替TX,XA接口接口不同对象在不同对象在IIOP上进行通信上进行通信可与可与X/Open DTP 模型进行互操作模型进行互操作山东大学计算机科学与技术学院OTS(Object
14、 Transaction Service )与与X/Open DTP模型区别模型区别: 面向对象与过程面向对象与过程分布式客户服务器应用事务客户事务对象可恢复对象资源事务操作事务操作事务环境事务环境开始事务提交/回滚事务回滚事务注册资源回滚事务准备/提交/回滚事务服务器可恢复服务器事务服务包含TM功能山东大学计算机科学与技术学院组成组成事务客户事务客户(AP) 发起或结束事务。调用事务服务上的发起或结束事务。调用事务服务上的API 调用操作调用操作事务对象事务对象(部分部分RM): 不负责事务性资源管理不负责事务性资源管理 不关心登记资源和执行两阶段提交不关心登记资源和执行两阶段提交 包括可被
15、请求修改的永久性资源包括可被请求修改的永久性资源 只可以回滚方式终止一个事务只可以回滚方式终止一个事务可恢复对象可恢复对象(部分部分RM) 继承了事务对象接口继承了事务对象接口 与事务对象区别:事务对象不直接操作资源与事务对象区别:事务对象不直接操作资源 通过向事务服务登记资源来体现其资源管理职责通过向事务服务登记资源来体现其资源管理职责可恢复服务器可恢复服务器事务服务:用于为客户和服务器提供应用接口事务服务:用于为客户和服务器提供应用接口事务环境:事务环境:山东大学计算机科学与技术学院可恢复对象和资源可恢复对象和资源部分地相当于部分地相当于RM可恢复对象:对象状态受事务提交或回卷影响的对可恢
16、复对象:对象状态受事务提交或回卷影响的对象象资源:可能被一个事务改变其状态的数据资源:可能被一个事务改变其状态的数据可恢复对象参与两步提交协议时会将一个资源对象可恢复对象参与两步提交协议时会将一个资源对象注册到注册到OTS,OTS向注册到事务的资源对象发送请向注册到事务的资源对象发送请求以完成两步提交协议求以完成两步提交协议山东大学计算机科学与技术学院可恢复服务器可恢复服务器由实现可恢复对象接口和资源接口的对象组成由实现可恢复对象接口和资源接口的对象组成类似于类似于X/OPEN DTP模型中的模型中的TM与与RM交互的交互的XA接接口口山东大学计算机科学与技术学院事务环境事务环境用于为客户和服
17、务器提供应用接口用于为客户和服务器提供应用接口一个客户发起一个事务后,对事务对象的操作处于一个客户发起一个事务后,对事务对象的操作处于该事务中;通过事务环境,事务对象可获知其所处该事务中;通过事务环境,事务对象可获知其所处的事务的事务山东大学计算机科学与技术学院事务服务事务服务事务服务定义的组件包括事务服务定义的组件包括 事务发起者:事务发起者:TransactionFactory,Control,Terminator,Current 可恢复服务器:可恢复服务器:Control,Coordinator,RecoveryCoordinator,Current 事务服务本身事务服务本身: Reso
18、urce,SubtransactionAwareResource, Synchonization山东大学计算机科学与技术学院SubTransactionAwareResourceCosTransaction:ResourceCosTransaction:TransactionObject具有嵌套行为的可恢复服务器可恢复服务器A可恢复服务器BCurrentCoordinator1 begin2 pay_out11 commit4 register_resource5 pay_in6 get_control7 register_resource8 commit9 prepare9 prepare1
19、0 prepare3 get_control12 commitCORBA事务服务山东大学计算机科学与技术学院1)事务处理的启动,执行,结束1 客户启动事务处理,调用current对象上的begin方法2 客户调用可恢复服务器(对象)A中操作pay_out,将给定数额的资金从银行A转出3 4 银行A的可恢复服务器注册资源。A调用current对象中的操作get_control,得到coordinator对象的对象引用。然后再调用coordinator对象中的操作register_resource进行注册,登记为事务的参与者5 客户调用B中的操作pay_in,将给定数额的资金传人银行B的同一帐户中
20、6 7 银行B的可恢复服务器注册资源8 客户结束事务处理,客户调用客户结束事务处理,客户调用current对象中的对象中的commit操作,宣布事务结束操作,宣布事务结束山东大学计算机科学与技术学院(2)执行两阶段确认协议9 10 第一阶段:Coordinator对象协调所有参与事务的可恢复服务器中的操作prepare。返回参数中的投票值(vote_commit或vote_rollback)反映了执行事务后的结果。若均返回确认,表示成功执行了事务11 12 第二阶段:根据投票结果,Coordinator对象向所有参与者发出调用操作commit或rollback命令(当前为commit)山东大学
21、计算机科学与技术学院1 begin2 pay_out3 get_controlRegister_resource4 pay_in5 get_controlRegister_resource6 commit7 prepareprepare8 commitcommit客户Source resourceTarget resourcecurrentOTS山东大学计算机科学与技术学院1 客户启动事务处理,每个活动事务维持一个current对象2 客户向银行A的对象借债3 银行A的可恢复对象注册其资源:1)get_control获得coordinator对象的标记,然后调用register_resourc
22、e向该事务的协调器对象注册1 b e g in2 p a y_ o u t3 g e t_ c o n tro lR e g is te r_ re s o u rc e4 p a y_ in5 g e t_ c o n tro lR e g is te r_ re s o u rc e6 c o m m it7 p re p a rep re p a re8 c o m m itc o m m it客 户S o u rc e re s o u rc eT a rg e t re s o u rc ec u rre n t山东大学计算机科学与技术学院4 客户向银行B贷款5 银行B的可恢复对象注
23、册资源6 客户发出确认7 协调器执行两段式确认的第一阶段,调用每个协调者的prepare方法8协调器执行两段式确认的第二阶段,协调者告诉所有参与者确认1 b e g in2 p a y _ o u t3 g e t_ c o n tro lR e g is te r_ re s o u rc e4 p a y _ in5 g e t_ c o n tro lR e g is te r_ re s o u rc e6 c o m m it7 p re p a rep re p a re8 c o m m itc o m m it客 户S o u rc e re s o u rc eT a rg
24、e t re s o u rc ec u rre n t山东大学计算机科学与技术学院7.3 J2EE中的事务体系结构中的事务体系结构框架框架JTSJTA JTA事务接口事务接口 JTA应用程序接口应用程序接口 X/Open XA资源管理接口资源管理接口山东大学计算机科学与技术学院事务服务事务服务 J2EE包括了两套规范,用来支持分布式的事务包括了两套规范,用来支持分布式的事务Java Transaction Service(JTS), 规定了规定了支持支持JTA的事务管理的事务管理器的实现规范器的实现规范Java Transaction API(JTA), 是一种高层的,与是一种高层的,与实现
25、无关实现无关的,的,与与协议无关协议无关的的API,应用程序和应用服务器可以使用,应用程序和应用服务器可以使用JTA来来访问事务访问事务。作为作为J2EE平台实现的一部分,平台实现的一部分,SUN实现了一个支持实现了一个支持JTS的事的事务管理器,同时还实现了务管理器,同时还实现了JTA。 山东大学计算机科学与技术学院JTSJTS规范定义了事务管理器的实现。规范定义了事务管理器的实现。JTS规范中定义的事务管理器在高层支持规范中定义的事务管理器在高层支持JTA接口规范,在接口规范,在底层则实现了底层则实现了OTS1.1(CORBA Object Transaction Service)的的标准
26、标准Java映射。该映射是由映射。该映射是由org.omg.CosTransactions and org.omg.CosTSPortability包定义包定义JTS事务管理器之间可以使用事务管理器之间可以使用IIOP (Internet InterORB协议协议)来生成并传播事务上下文。来生成并传播事务上下文。 山东大学计算机科学与技术学院JTS框架框架高层支持高层支持JTA接口规范接口规范底层实现了的标底层实现了的标准准Java映射映射山东大学计算机科学与技术学院JTS组成组成企业级企业级Java中间件的分布式事务服务包括五层:中间件的分布式事务服务包括五层: 事务管理器事务管理器(Tra
27、nsaction Manager) 应用服务器应用服务器(Application Server) 资源管理器资源管理器(Resource Manager) 应用程序应用程序(Application Program) 通信资源管理器通信资源管理器(Communication Resource Manager)每一层都通过实现一组事务每一层都通过实现一组事务API和相关机制参与到分布式事和相关机制参与到分布式事务处理系统中。务处理系统中。 山东大学计算机科学与技术学院与与OTS的对应关系的对应关系山东大学计算机科学与技术学院事务管理器是整个结构中的核心部件事务管理器是整个结构中的核心部件,是一个是
28、一个JTS的实现的实现Application Server: 应用开发者可以开发和部署应用组件进应用开发者可以开发和部署应用组件进应用服务器,用于初始和管理事务。应用服务器,用于初始和管理事务。Application Components: 是事务资源和完成业务事务的客户是事务资源和完成业务事务的客户程序程序 部署于应用服务器部署于应用服务器 依赖于所处的应用服务器,这些组件可以直接或间接初始化和操作依赖于所处的应用服务器,这些组件可以直接或间接初始化和操作事务资源事务资源Resource Manager: 是一个是一个X/OPEN XA的组件,可管理持久的组件,可管理持久性和稳定的存储系统,
29、参与到两阶段提交和恢复协议性和稳定的存储系统,参与到两阶段提交和恢复协议Communication Resource Manager:允许参与由其他事务管理允许参与由其他事务管理器创建的事务器创建的事务山东大学计算机科学与技术学院JTAJTA的目的是的目的是定义事务管理器定义事务管理器所要求的本地所要求的本地Java接接口,从而在企业级分布计算环境中支持事务管理。口,从而在企业级分布计算环境中支持事务管理。山东大学计算机科学与技术学院JTA描述的事务模型 山东大学计算机科学与技术学院应用程序应用服务器 JTA通信资源管理器(CRM)资源适配器资源适配器资源管理器资源管理器JTA XA资源管理资
30、源管理interfaceTransactionManagerinterfaceStatusinterfaceTransactioninterfaceSynchronizationinterfaceUserTransactionJTA 应用应用程序接口程序接口JTA 事务管理事务管理interfaceXAResourceinterface Xid山东大学计算机科学与技术学院山东大学计算机科学与技术学院JTA事务管理接口事务管理接口提供一组被应用服务器使用的接口,管理事务的开始和完成,提供一组被应用服务器使用的接口,管理事务的开始和完成,以及事务的同步和传播以及事务的同步和传播Transaction:封装一个事务:封装一个事务 由事务管理器创建由事务管理器创建 Commit(),rollback(),getStatus()TransactionManager:由
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 社会工作的动态调整机制试题及答案
- 多媒体应用设计师职业生涯规划试题及答案
- 中级社会工作者考试的综合素养培养途径及试题及答案
- 多媒体应用设计师考试的多机制试题及答案
- 患者用药后观察与处置试题及答案
- 2025药店专柜租赁合同
- 系统集成项目管理中的费用控制技巧试题及答案
- 追寻梦想的初级社会工作者考试试题及答案
- 云和社保考试题目及答案
- 买卖果园合同协议书范本
- 2025汽车销售合同简单版范本
- 江苏省南通市海安市2024-2025学年高二下学期4月期中生物试题(原卷版+解析版)
- 供配电技术试题及答案
- 2024年青海大学附属医院招聘笔试真题
- 上海市社区工作者管理办法
- 第14课 光荣的少先队 课件-2024-2025学年道德与法治一年级下册统编版
- 山东财经综招试题及答案
- 深圳市城市规划标准与准则2024版
- 《低空经济及其产业发展-把握机会、布局未来》课件
- 我们的节日-端午
- 2025年华阳新材料科技集团有限公司招聘笔试参考题库含答案解析
评论
0/150
提交评论