第9章:TUXEDO的数据库编程.docx
《第9章:TUXEDO的数据库编程.docx》由会员分享,可在线阅读,更多相关《第9章:TUXEDO的数据库编程.docx(25页珍藏版)》请在课桌文档上搜索。
1、9.1TUXEDO如何处理分布式事务在两层的CS结构中,客户端宜接访问数据库,当采用TUXEDO中间件后,形成三层结构,这时,客户端不直接访问数据库,而是改为询用中间件TUXE1.X)效劳端上的效劳,IIITUX1.DO效劳端访问数据阵,并把结果返IU1.给客户端.如下图.car0ITUXEDO应-1一客户端RC1.ESYBASE、1、用效劳器UN1.X上的大小数据扉fj*c-xAM文件系统。即可以也可不用XATUXEDO与数据库的连接的配置及娟程I择些名诃.客户端:连接.在说明名词解春7/M*9S(Reso1.rcemanager”最常见的是数据库,可以是其他的,如TUXEDO的QUEUE,
2、EIB的JMS等.它Q对数据进行管理和推护.1.TRANSACTION):小务的定义很多,简弟地说,裂务是对资源管理器的一俎操作,它使所涉及的资源管理器从一个状态转变到另一个状态,这此操作要么全部成功,要么全部失败。事务具有以下的4个特征(一般称为AC1.D):原子性(A1.OM1.Ci1.Y):指小务中的所有操作作为一个整体单元要么成功要么失败.一致性CONS1.STENCY):一致性意味着不管事务提交或放弃,参与事务的所以资源管埋器在务结束后都保持一种合法的状态.故性也感味着,当一个干务结束时.所有的参与者都要择放它所锁住的资源.育性(IS。1.AT1.ON):隔禽性懑味着事务iE在处理过
3、程中.在事务外面无法看到事务处理的中间结果.持久性(DURBI1.ITY):使货务的G线结果已被直正写到磴盘系统中.*1.1.OCA1.TRANSACTION)!加果一个事务只涉及到一个资源管理器,那么该事务称为本地小务.在TUXEDO中.不通过XA接口的事务郴是本地事务.如:在ORAC1.E中,用EXECCONNECT建立与数据原的连接,并用EXECCOMMIT提交一个学乐那么该小务就是本地W分.全局OIG1.OBA1.TRA、SAeTIONH全局小芬涉及到一个或多个资源管理,它也称为分布式事务(DISTRBuTEDTRANSACT1.oN),对所有涉及的资源管理器的操作必须被看作的个工作单
4、元.它们必须被同步,并在所有效劳器上圆满完成,否那么,就必须被彻底取消.例如:一个效劳器在写过程中被关闭,那么事务处理中其他系统上的所有写的东西就必须被取消,在TUXEDO中,采用XA接口的事务都是全局事务,全局事务站相对1.T而言的,它也有A1.CD四个特性.所不同的是它可以聆越多个资M管理器,这些资源管理器可能在不同的平价上.在TUXEDO1,一个全局事务最多可检越16个不同的资源管埋器.W三TRNSCTINMORNITOR)管理协调参与全局事务的各个资源管理器的准备,提交及回演等操作,事务管理甥还在出现场地故障.网络故障或全局资源死镇时协调全局事务的愦红TUXEDO在全局小务中就充当事务
5、管理器的作用.在一个全局事芬中有一个事务协网器.有一个以上的资源管理器.界务协附器与资源管理器之间采用XA协议进行通讯在TUXEDo中一个GROUP只能有以个资源管理器,所以一个全局任务会跨越多个GROUPXAW:XAI1.TUXEDO首先提出,并交给XJOpcn组织,作为资源管理器(数据库)与事务管理涔的接11标准.Informix是以早宣布支持XA协议的数据嗥厂家,Infomix5.0以上的版本都提供XA接口,以实现与TUXEDO的连接,目前,Orac1.e.Informix,DB2.Sybase等各大数据库厂家都提供财XA的支持.XA协议采用两阶段提交方式来管理分布式小务.XA接口提供资
6、源管理器与再务管理盘之间的迸行通讯的标准接口.TUXEDO支持根本的XA标准(PRE1.IMINARYXASPECIF1.CAT1.ON),及最终的XA标排(THEFINA1.SPECIHCATIONhXA协议包括两套函数,以Xa_开头的及以ax一开头的.以下的函数使事务管理器可时RM进行操作xa_opcn.xa_c1.osc:建立.关闭与RM的连接XaJUan,xa_cnd:开始,结束一个本地事务xa_prepatc.xa_8nimi(.xa_ro1.1.back:预提交.提交.回津,个本地,J,务XaJecoVCr:回滚一个已进行预提交的事务ax一开头的函数使RM可以动态在事务管理器中进行
7、注册.并可以对XIDdRANSACHONIDS)进行操作.说明:fina1.XASpecihcation中,用xid代号全局事务R1.Daxeg.ax_unreg:允许个RM在一个TMS(TRANSACTo1.NMANAGERSERVER)中动态注册或撤消注册.全局小务rid_开头的函数在PREUMINARYXASPECIFICATION中有.在F1.NA1.XASPECIFICATION中没有定义.全用W分rid/mp:比拟两个全局步务RID全局事务ri 如果A当前不处于事务模式中,A在UBBeoNF1.G中设跣了AUToTRAN=Y,那么系统自动起一个全局事务 如果A当前己处于事务模式中.
8、A在UBBCONF1.G中设置了AUTOTRAN=Y.那么:1 .如果tpca1.1.()中的f1.ags没有设置TPNOTRAN(默认方式是不设置)那么SERVICE,B参与当前的事务.2 .如果ta1.1.()ff1.ags为TPNoTRAN.刖么SERVICE:B不参与当前的W务,注.旗:如果在UBBCONF1.G中对SERVICEB设置了AUToTRAN=Y,那么当前的事务被自动挂起.系统为B自动起一个新的事务.如果B中的事务失败了.对A中的事务没有影响.TUXEDO中与全局WHr关的设置:与全局干务有关的设冏.包括:RESoURCE.mAchineoroupsservice4个节在R
9、eso1.rce中设置主要有:MAXG1.T(MAXG1.oba1.Transaction)在任一时刻在某一台效劳器上最多可以有多少个全局事务存在,也就是可以最多有多少个未提交的全局干务,范围Q32767,0意味若该系统不支持5分默认值是100.该值也可在MAeH1.ENS中设置,在MACHINES中设置的值回加盖在RESOURCE中的设置值。(;(noba1.IransactionTab1.e)TUXEDO在BU1.1.ETINBCARD中维护的米表,用于记录全局邓务的状态信恩,在该台效劳器上发起的或该台效劳器参与的行个全局W务.在G1.T中都对应-条记录分台效劳器的GTT中fit?可以有多
10、少条全局事务的记录是由MAXGTT决定的.当一个全局事务成功提交时.它在GTT中的记录将被删除.如果该全卮事务提交失败,它在GTT中的记录还会保挣一段时间1.股是5分钟.所以GT应该大于TIXXiSIZE.GTT的范围为064,(XX)饿认值为100.可以在MACHINE中用孟该设置.CMTRET:设置TP-COMMn1.CoNTRo1.的初始值.该值可以由在IPSCm1.。中重新设置.与MACHINES有关的设*:在MACHINES中设置每台机器中的全局事务日志文件的位置和大小.T1.OGDEV1CE:指定包含T1.OG文件的TUXEDO文件系统名.长度不能超个64个字符T1.OGNAME:
11、T1.OG文件的名称T1.OGS1.ZE:T1.oG文件的大小,它的大小为0=TI.OGSIZE48,默认他为KXI如果一个全目少务跄越多台效劳器,在年台效劳器上都应该有一个T1.oG文件,用于记录全局酬务的信息,在全局事务要回次时要用到记录在T1.OG中的信息.T1.OG可以创立在裸设法上.如果一个全局本务在该分机器上发起但还没行提交.那么它在T1.OG文件种占有一页的空间.在一般的平台上一页的大小使512字节,当该全局事务成功提交或I可滚后,它在T1.QG中的记录将被删除。与GROUPS有关的设:在TUXEDo中一个GRoUP中只能定义一个资源管理器.如果一个TUXEDo系统”多个资源管理
12、器.就要定义多个GROUP才行.在GROUP中定义TMS的名称及个数,翔开,关闭该资源管理涔的参数,不同的资源管理器的设附都不一样.SERVICES中的设:AUTOTRN:如果一个客户端调用了设置Autotran=Y的SERVICE,并且该客户端当前不在事务模式下,那么TUXEDO自动为该SERVICE启动一个全局小务.TRANST1ME:对因设置Am-OTRAN的而起动的事务设置拉时时间.我认为前秒.0表示没有超时.全用务中用到的函数在TUXEDO中有两套操作全局小务的函数ATMITUXEDo自己提供的函数TX由X1OPEN定义的函数它们根本差不多,因为TX是以ATM1.为根底定义的.区别1
13、. TX提供CHAINEDTRANSACTIONS.ATM1.不提供2. TX以1_开始,而ATMI以IP开始,如tx_bcgin(),(pbcgin()3. TX在ix.h中定义.ATM1.在aimih中定义TX_开头的函数一般很少用,在此不作介绍。inttpopen(void)描述:建立与一个费源管理器忠连接,该资源管埋器是该SERVER所在得组中定义的.并且在bui1.dscncr时要用-r等数指定该资源管理器,如果采用默认的TPSVRIN【T()该函数会自动被调用,参数:无返回值:失败返回错误号保存在全局变量tperrn。中.inttpc1.ose(void)描述:关闭与个资源管理器汨
14、连接,如果采用默认的TPDoNE()该函数会自动被调用,参数:无返回值:失败返回-1.错派号保存在全局变册tperrn。中.inttpbegin(unsigned1.ongtimeout,1.ongf1.ags)描述:开始一个全局步务参数:timeout:全局事务的超IH时间.从IPbCa(讲始.过了TIMEOUT秒该全局事务还没有完成.该全同事务将因超时而回滚,范围为OU233秒,0表示可以为无穷长.注意:TIMEoUT应该大于SCANUNITF1.AGS:保存值,现在没有用到,要设为0返回依:失败返回1,错误号保存在全局变“ttperrn。中。inttpcommit(1.ongf1.ags
15、)描述:对一个全局事务进行提交操作参数:F1.AG应该设为0返回值:失败返回,错误号保存在全局变架tperrn。中。inttpabort(1.ongf1.ags)描述:对当前的全闹事务进行回滚参数:F1.AG应该设为0返回做:失败返回,错误号保存在全局变EtPerrn。中。inttpsusptnd(TI,-RAN1.1.)*tranid.1.ongf1.ags)描述:挂起当前的全局事务.一个全局事务的发起进程A可以调用它.并把得到的句柄传给在同一介机器上另个进程B,在B中可以调研TPRESUMEO重起该全局事务.如果不是在一个全局事务的发起进程中调用TpSUSPENDo,那么只能在进程中调用T
16、PRESUME().注意:一个全局事务被挂起之后.超时仍然起作用.参数,tranid:如果调用成功,返【可一个当前全局事务的句柄F1.AG应该设为0返回值:失败返回工H1.误号保存在全局变量tperrn。中。成功返回一个当前全局事务的句柄.inttpresume(TPTRANID*tranid,1.ongf1.ags)描述:虫新开始一个全局步务参数:tranid:要.ft新开始的全局事务的句柄.为tpsuspend()中参数Iranid返回(ftf1.ags:应该设为0返回侑:失败返回,错误号保存在全局变Httperrn。中。inttpscmt(1.ongf1.ags)()描述:设置TP_CO
17、MMn.CONTRO1.得值参数:F1.AG有两个值TP_CMT_1.oGGED:TPCOMM1.TO在第阶段完成之后就返回.tp_cmt_cOMP1.ETEtpcommit0在第二阶段完成之后才返回.返回依:失败返回-1.错误号保存在全局变fi1.tperrn。中.intIpgetIevO描述:返回当前所处得全局少务状态.参数:返回值:1:在一个全局事务中.0:不在个全局事务中.失败返I可-I.错误号保存在全局变量Cperrno中.9.2ORAe1.E数据座XA的配J1.T1.XEDO效劳器可以和ORAC1.E数据库在同一台效劳器上,也可以在不同的机器.匕如果在不同的机器上,在TUXEDO的
18、效劳携J1.安装一个ORAC1.E的客户流。从上一节的内容我们知道TUXEDO效劳涔与ORAC1.E数据库连接有两种方式:1、不通过M接口直接互连,适用于整个系统只有一个数据库的情况,不需要作任何的配置。2、通过XA接口互连,对整个系统有一个数据库或多个数据库都适用,要进行一些配置工作才行.下面介绍采用这种互连方式的配置方法.宗我说明:TUXEDO版本:7.1安装目录d:tuxedo71ORAC1.E版本:8.1.5安装目录d:ora81操作系统:in2000配的步:一、ORAe1.E的的配1 .用interna1.用户(缺省的口令是。rac1.e)进入SQ1.P1.USCsqIp1.usin
19、terna1./OraCIe2 .运行ORAC1.E的安装路径下的rdbnsa0d:ora81rdbmsad三inxaviegrantse1.ectonvSpending_xatrans$copub1.icwithgrantoption:4,用SyStenI用户(决省的口令是三anager)连接并授权SQ1.connectSyStem/managerSQ1.grantse1.ectanytab1.etopub1.ic:二、TUXEDO的配量1 .修改TUXEDO安装路径的Udataobj目录下的RM文件.把以OraC1.e_XA:XEIoSW:开头的一行用#注择原,并参加一行:Orac1e.X
20、A:xaosw:d:ora81rd1.xnsxaoraxa8.1ibd:ora81preconip1.ibMSYcorasq1.8.Iib如果是在UNIX环境卜,那么为:Orac1.eXA:xaosw:1.$ORAC1.EK)ME1ibIc1.ntsh2 .在TCXE1.)O用户下创立TMS文件:IMSoRA8i,IUXEDO通过TMSORA8i与ORAc1.E数掘阵采用XA称议进行通讯buiIdtms-od:1.uxedo71binTNS_0RA8i-rOraCIe_XA注意:如果T1.IEDO效劳端与ORAC1.E数据库不在同一台效劳潺上,可能会提示找不到库文件OraXa8ib和OraSq
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- TUXEDO 数据库 编程
链接地址:https://www.desk33.com/p-1788718.html