第9章:TUXEDO的数据库编程.doc

  1. 1、本文档共27页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

9.1TUXEDO如何处理分布式事务

在两层的C/S结构中,客户端直接访问数据库,当采用TUXEDO中间件后,形成三层结构。这时,客户端不直接访问数据库,而是改为调用中间件TUXEDO效劳端上的效劳,由TUXEDO效劳端访问数据库,并把结果返回给客户端。如下图。

客户端

客户端

TUXEDO应用效劳器数据库

TUXEDO应用效劳器

数据库

客户端

客户端

客户端

客户端

TUXEDO支持ORACLE、SYBASE、INGRES、DB2等UNIX上的大型数据库和NT上的SQLServer,并且还支持C-ISAM文件系统。即可以通过XA协议,也可不用XA协议与数据库进行连接。在说明TUXEDO与数据库的连接的配置及编程之前,我们先解释一些名词。

名词解释

资源管理器(RESOURCEMANAGER):

最常见的是数据库,可以是其他的,如TUXEDO的QUEUE,EJB的JMS等,它们对数据进行管理和维护.

事务(TRANSACTION):

事务的定义很多,简单地说,事务是对资源管理器的一组操作,它使所涉及的资源管理器从一个状态转变到另一个状态,这些操作要么全部成功,要么全部失败。事务具有以下的4个特征(一般称为ACID):

原子性(ATOMICITY):指事务中的所有操作作为一个整体单元要么成功要么失败.

一致性(CONSISTENCY):一致性意味着不管事务提交或放弃,参与事务的所以资源管理器

在事务结束后都保持一种合法的状态.一致性也意味着,当一个事务结束时,所有的参

与者都要释放它所锁住的资源.

隔离性(ISOLATION):隔离性意味着事务正在处理过程中,在事务外面无法看到事务处理的

中间结果.

持久性(DURABILITY):使事务的最终结果已被真正写到磁盘系统中.

本地事务(LOCALTRANSACTION):

如果一个事务只涉及到一个资源管理器,那么该事务称为本地事务。在TUXEDO中,不通过XA接口的事务都是本地事务,如:在ORACLE中,用EXECCONNECT建立与数据库的连接,并用EXECCOMMIT提交一个事务,那么该事务就是本地事务.

全局事务(GLOBALTRANSACTION):

全局事务涉及到一个或多个资源管理器,它也称为分布式事务(DISTRBUTEDTRANSACTION),对所有涉及的资源管理器的操作必须被看作单个工作单元。它们必须被同步,并在所有效劳器上圆满完成,否那么,就必须被彻底取消。例如:一个效劳器在写过程中被关闭,那么事务处理中其他系统上的所有写的东西就必须被取消。在TUXEDO中,采用XA接口的事务都是全局事务。全局事务是相对LT而言的,它也有AICD四个特性,所不同的是它可以跨越多个资源管理器,这些资源管理器可能在不同的平台上。在TUXEDO中,一个全局事务最多可跨越16个不同的资源管理器.

事务管理器(TRANSACTINMORNITOR):

管理协调参与全局事务的各个资源管理器的准备,提交及回滚等操作,事务管理器还在出现场地故障、网络故障或全局资源死锁时协调全局事务的恢复。TUXEDO在全局事务中就充当事务管理器的作用。在一个全局事务中有一个事务协调器,有一个以上的资源管理器。事务协调器与资源管理器之间采用XA协议进行通讯在TUXEDO中一个GROUP只能有以个资源管理器,所以一个全局事务会跨越多个GROUP

XA协议:

XA协议由TUXEDO首先提出,并交给X/Open组织,作为资源管理器(数据库)与事务管理器的接口标准。Informix是最早宣布支持XA协议的数据库厂家,Informix5.0以上的版本都提供XA接口,以实现与TUXEDO的连接。目前,Oracle、Informix、DB2、Sybase等各大数据库厂家都提供对XA的支持.XA协议采用两阶段提交方式来管理分布式事务.XA接口提供资源管理器与事务管理器之间的进行通讯的标准接口,TUXEDO支持根本的XA标准

(PRELIMINARYXASPECIFICATION),及最终的XA标准(THEFINALSPECIFICATION).XA协议包括两套函数,以xa_开头的及以ax_开头的.

以下的函数使事务管理器可对RM进行操作

xa_open,xa_close:建立,关闭与RM的连接

xa_start,xa_end:开始,结束一个本地事务

xa_prepare,xa_commit,xa_rollback:预提交,提交,回滚一个本地事务

xa_recover:回滚一个已进行预提交的事务

ax_开头的函数使RM可以动态在事务管理器中进行注册,并可以对XID(TRANSACTIONIDS)进行操作.

说明:在FINALXASPECIFICATION中,用XID代替全局事务RI

文档评论(0)

147****4268 + 关注
实名认证
内容提供者

认真 负责 是我的态度

1亿VIP精品文档

相关文档