对X/Open DTP模型、XA协议的理解,请大家轻拍

问题描述

最近的任务是里了解XA协议。要了解XA协议,必须先了解X/OpenDTP模型,稍微总结一下:X/OpenDTP(DistributedTransactionProcess)是一个分布式事务模型。这个模型主要使用了两段提交(2PC-Two-Phase-Commit)来保证分布式事务的完整性。在这个模型里面,有三个角色:•AP:Application,应用程序。也就是业务层。哪些操作属于一个事务,就是AP定义的。•TM:TransactionManager,事务管理器。接收AP的事务请求,对全局事务进行管理,管理事务分支状态,协调RM的处理,通知RM哪些操作属于哪些全局事务以及事务分支等等。这个也是整个事务调度模型的核心部分。•RM:ResourceManager,资源管理器。一般是数据库,也可以是其他的资源管理器,如消息队列(如JMS数据源),文件系统等。三者之间的关系如图:一般的编程方式是这样的:1.配置TM,通过TM或者RM提供的方式,把RM注册到TM。可以理解为给TM注册RM作为数据源。一个TM可以注册多个RM。1.AP从TM获取资源管理器的代理(例如:使用JTA接口,从TM管理的上下文中,获取出这个TM所管理的RM的JDBC连接或JMS连接)2.AP向TM发起一个全局事务。这时,TM会通知各个RM。XID(全局事务ID)会通知到各个RM。3.AP通过1中获取的连接,直接操作RM进行业务操作。这时,AP在每次操作时把XID(包括所属分支的信息)传递给RM,RM正是通过这个XID与2步中的XID关联来知道操作和事务的关系的。4.AP结束全局事务。此时TM会通知RM全局事务结束。5.开始二段提交,也就是prepare-commit的过程。XA协议(XASpecification),指的是TM和RM之间的接口。其实这个协议只是定义了xa_和ax_系列的函数原型以及功能描述、约束和实施规范等。至于RM和TM之间通过什么协议通信,则没有提及。目前知名的数据库,如Oracle,DB2等,都是实现了XA接口的,都可以作为RM。Tuxedo、TXseries等事务中间件可以通过XA协议跟这些数据源进行对接。Tuxedo使用TMS(开关文件)进行对各个RM的注册。TMS文件生成通过一个类似编译链接的方式完成。(这点我有点不是十分确定。如有错误请各位纠正)。Tuxedo分为客户端和服务端程序。按照我的理解,客户端就是AP,服务端是TMJTA(JavaTransactionAPI)是符合X/OpenDTP的一个编程模型,事务管理和资源管理器支架也是用了XA协议。WebSphere本身也实现了JTA接口,其中TM和RM之间也是使用XA协议和二段提交。WebSphere也可以通过XMLlink/XMLlinkWrapper和Tuxedo实现对接。WebLogic可以通过WTC(WebLogicTuxedoConnector)和Tuxedo进行对接。

时间: 2024-09-21 22:15:14

对X/Open DTP模型、XA协议的理解,请大家轻拍的相关文章

X/Open DTP模型与XA协议的学习笔记,请大家指教!

问题描述 最近的任务是里了解XA协议.要了解XA协议,必须先了解X/OpenDTP模型,稍微总结一下:X/OpenDTP(DistributedTransactionProcess)是一个分布式事务模型.这个模型主要使用了两段提交(2PC-Two-Phase-Commit)来保证分布式事务的完整性.在这个模型里面,有三个角色:AP:Application,应用程序.也就是业务层.哪些操作属于一个事务,就是AP定义的.TM:TransactionManager,事务管理器.接收AP的事务请求,对全

新手指南!关于VPN的基本模型和协议

自从虚拟专用网(VPN)取代了旧的帧中继和拨号系统以来,在过去二十多年中,它已经成为企业远程连接的主要部分.VPN为远程用户和网络提供低成本和安全连接的能力,同时在企业中发挥越来越重要的作用,因为如今的工作场所模式已转移到远程办公. 多年来,我们已经看到了基于传统VPN架构的稳步改进,包括SSL VPN的兴起.在文中,将介绍如今企业中使用的基本VPN模型和协议. ●远程访问VPN 这种类型的VPN是基于客户端或远程访问形式的VPN,这是当客户端设备(如PC.平板电脑或智能手机)通过Interne

路由器-数据链路层协议问题,请高手来解答

问题描述 数据链路层协议问题,请高手来解答 请问数据链路层封装,如果交换机或者路由器对应的接口上没有encapsulation之类的封装命令,那么这个接口是否还有一个默认封装和解封装的协议?比如我接口没有配置encapsulation封装类型,那么这个接口默认就是封装和解封装以太网帧?请知道的告诉下,谢谢了,还有个问题,pppoe拨号上网,如果我电脑直接连接在光猫上,通过电脑拨号,请问从我电脑网卡出去的数据链路帧是以太网帧还是ppp帧,还是说ppp帧被封装在了以太网帧内,如果是最后一种情况,那么

服务器-tcp协议问题,请大神指导

问题描述 tcp协议问题,请大神指导 服务器使用tcp协议给客户端发送了3092字节的数据,我在客户端使用一个3092字节的结构体进行接收,为什么有时候一次性接收的 不到3092字节,也就是需要分两次接收才能接收完整,比如第一次接收2000,第二次再接收1092字节,按照ip分包,MTU=1500,超过1500字节他就会在ip层分包,但是他会在接收端组包,再交付给上一层,所以按道理不会出现这种问题,有哪一位大神能指导一下么?万分感激... 解决方案 tcp是流式协议,只会保证你能把数据发送和接收

SQL Server 2008网络协议深入理解_mssql2008

SQL Server 2008支持四种协议,Shared Memory:TCP/IP:Named Pipes和Virtual Interface Adapter(VIA).代开SQL Server配置管理器之后,会显示一个配置SQL Server服务,SQL Server网络协议和SQL Native Client协议的节点.可以通过展开SQL Server 2008网络配置节点进行服务器协议的配置. Shared Memory:Shared Meory协议只能由本地连接使用,因为它是一个用于服

通过Java来测试JSON和Protocol Buffer的传输文件大小_java

JSON相信大家都知道是什么东西,如果不知道,那可就真的OUT了,GOOGLE一下去.这里就不介绍啥的了. Protobuffer大家估计就很少听说了,但如果说到是GOOGLE搞的,相信大家都会有兴趣去试一下,毕竟GOOGLE出口,多属精品. Protobuffer是一个类似JSON的一个传输协议,其实也不能说是协议,只是一个数据传输的东西罢了. 那它跟JSON有什么区别呢? 跨语言,这是它的一个优点.它自带了一个编译器,protoc,只需要用它进行编译,可以编译成JAVA.python.C++

分布式事务(两阶段提交)模型详解

这一几天一直在回顾事务相关的知识,也准备把以前了解皮毛的知识进行一些深入总结,虽然这一些知识并没有用到,但是了解其实现原理还是很有必要的,因为知道了原理,你也能把它实现出来. 在上一节事务的编程模型里面,主要说明了三种编程模型,一般情况下,我们都接触的是单一资源的事务,也就是单独对一个数据库进行操作.如果需要跨多个资源保证事务一致性 举个例子:在ATM机取钱的时候,需要对用户的账户进行扣款处理,然后发送一条消息给消息服务器(假设消息服务器是用JMS实现的),由消息服务器异步通过短信通知用户.如果

MySQL分布式事务(XA事务)

MySQL分布式事务(XA事务) 官网:https://dev.mysql.com/doc/refman/5.7/en/xa.html 1.什么是分布式事务 分布式事务就是指事务的参与者.支持事务的服务器.资源服务器以及事务管理器分别位于不同的分布式系统的不同节点之上.以上是百度百科的解释,简单的说,就是一次大的操作由不同的小操作组成,这些小的操作分布在不同的服务器上,且属于不同的应用,分布式事务需要保证这些小操作要么全部成功,要么全部失败.本质上来说,分布式事务就是为了保证不同数据库的数据一致

李艳鹏:分布式一致性协议

国际开放标准组织Open Group定义了DTS(分布式事务处理模型),模型中包含4个角色:应用程序.事务管理器.资源管理器.通信资源管理器四部分.事务处理器是统管全局的管理者,资源处理器和通信资源处理器是事务的参与者. J2EE规范也包含此分布式事务处理模型的规范,并在所有的AppServer中进行实现,J2EE规范中定义了TX协议和XA协议,TX协议定义应用程序与事务管理器之间的接口,而XA协议定义了事务管理器与资源处理器之间的接口,在过去,大家使用AppServer,例如:Webspher