欢迎来到课桌文档! | 帮助中心 课桌文档-建筑工程资料库
课桌文档
全部分类
  • 党建之窗>
  • 感悟体会>
  • 百家争鸣>
  • 教育整顿>
  • 文笔提升>
  • 热门分类>
  • 计划总结>
  • 致辞演讲>
  • 在线阅读>
  • ImageVerifierCode 换一换
    首页 课桌文档 > 资源分类 > DOCX文档下载  

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

    • 资源ID:1788718       资源大小:89.95KB        全文页数:25页
    • 资源格式: DOCX        下载积分:5金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要5金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

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

    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,EIB的JMS等.它Q对数据进行管理和推护.<1.TRANSACTION):小务的定义很多,简弟地说,裂务是对资源管理器的一俎操作,它使所涉及的资源管理器从一个状态转变到另一个状态,这此操作要么全部成功,要么全部失败。事务具有以下的4个特征(一般称为AC1.D):原子性(A1.OM1.Ci1.Y):指小务中的所有操作作为一个整体单元要么成功要么失败.一致性CONS1.STENCY):一致性意味着不管事务提交或放弃,参与事务的所以资源管埋器在务结束后都保持一种合法的状态.故性也感味着,当一个干务结束时.所有的参与者都要择放它所锁住的资源.育性(IS。1.AT1.ON):隔禽性懑味着事务iE在处理过程中.在事务外面无法看到事务处理的中间结果.持久性(DURBI1.ITY):使货务的G线结果已被直正写到磴盘系统中.*<1.1.OCA1.TRANSACTION)!加果一个事务只涉及到一个资源管理器,那么该事务称为本地小务.在TUXEDO中.不通过XA接口的事务郴是本地事务.如:在ORAC1.E中,用EXECCONNECT建立与数据原的连接,并用EXECCOMMIT提交一个学乐那么该小务就是本地W分.全局OIG1.OBA1.TRA、SAeTIONH全局小芬涉及到一个或多个资源管理,它也称为分布式事务(DISTRBuTEDTRANSACT1.oN),对所有涉及的资源管理器的操作必须被看作的个工作单元.它们必须被同步,并在所有效劳器上圆满完成,否那么,就必须被彻底取消.例如:一个效劳器在写过程中被关闭,那么事务处理中其他系统上的所有写的东西就必须被取消,在TUXEDO中,采用XA接口的事务都是全局事务,全局事务站相对1.T而言的,它也有A1.CD四个特性.所不同的是它可以聆越多个资M管理器,这些资源管理器可能在不同的平价上.在TUXEDO'1',一个全局事务最多可检越16个不同的资源管埋器.<W三TRNSCTINMORNITOR)管理协调参与全局事务的各个资源管理器的准备,提交及回演等操作,事务管理甥还在出现场地故障.网络故障或全局资源死镇时协调全局事务的愦红TUXEDO在全局小务中就充当事务管理器的作用.在一个全局事芬中有一个事务协网器.有一个以上的资源管理器.界务协附器与资源管理器之间采用XA协议进行通讯在TUXEDo中一个GROUP只能有以个资源管理器,所以一个全局任务会跨越多个GROUPXAW:XAI1.TUXEDO首先提出,并交给XJOpcn组织,作为资源管理器(数据库)与事务管理涔的接11标准.Informix是以早宣布支持XA协议的数据嗥厂家,Infomix5.0以上的版本都提供XA接口,以实现与TUXEDO的连接,目前,Orac1.e.Informix,DB2.Sybase等各大数据库厂家都提供财XA的支持.XA协议采用两阶段提交方式来管理分布式小务.XA接口提供资源管理器与再务管理盘之间的迸行通讯的标准接口.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可以动态在事务管理器中进行注册.并可以对XIDdRANSACHONIDS)进行操作.说明:fina1.XASpecihcation中,用xid代号全局事务R1.Daxeg.ax_unreg:允许个RM在一个TMS(TRANSACTo1.NMANAGERSERVER)中动态注册或撤消注册.全局小务rid_开头的函数在PREUMINARYXASPECIFICATION中有.在F1.NA1.XASPECIFICATION中没有定义.全用W分rid/mp:比拟两个全局步务RID全局事务ri<1.fm1.:格式化一个全局事务R1.D.以便打印全局事务rid_ha$h:根据全局事务R1.D4:成一个HASH值.现在主要的数据首都支持FINA1.XASPECIFICATIONTUXEDO中的全局务有以下特点:1.Ur以在客户玷或效劳端开始一个全局事务2 .在TUXEDO中全局事务能踏越多个进程3 .每个全局事务有一个唯一的ID号(全同事芬RID)标识,它可在TUXEDO的进程间传通。4 .全局事务可以绮越DOMAIN一个全局事务从发起到提交的过程:全局事务的提交采用两阶段提交方式.在两阶段提交过程中,应用程序是IJi务提交得发起者,应用程序通过调用TPCoMMrn)开始一个犷务的提交.该应用所在GROUP的TMS是这个事务的仞调者(CoORD1.NAToR).我们称之为COoRD1.NAToRTMS.其他参与本领务的GROUP所对应的TMS,我们称之为:SUBoRD1.NATETMS.CORDINAORIMS负近与所彳r参与本全局事务的RM的通讯.完成该事芬的提交,整个过程如下:1 .应用程序通过调用TPCoMM1.To开始个1J,务的提交2 .CordinatorTMS给参与该全局事务的每个group中的tms发送请求.杼个TMS要求rm进行预提交操作3 .每个RM各自进行预提交,及提交指把要更改的数据写到破盘上,以便在失败时可以进行恢复.但没有真正更新RM4 .当rm预提交完毕.每个Subordinatetms都把预提交操作结果(成功或失败)告诉给C(X)Rdinaiortms.5 .如果彳!任何一个RM预提交失败、或CoORD1.NAToRTMS得不到它的应答JE么CRDINATORTMS告诉所有的RM回滚它们各自的本地裂务.如果所有的RM预提交都成功.那么CRD1NATORTMS在它所在机器的T1.OG文件中写条记录,内容包括该全局事务的全局事务RID.参与该全局事务的所以RM的列表及其他信息.以便在第二阶段提交失败时I可滚.6,下一步做什么取决于在UBBCONFiG中TP.COMMIT_CONTRO1.得设置TP_CMT_1.OGGEDTPCoMMn调用返回.程序维续往下走.各个RM各自进行其正得提交操作,如果在第二阶段提交失败.TMS时是不知道的.而这是TpCOMM1.TO已返回成功.TP_CMT_COMP1.ETETPCoMMn。会等到笫:阶段提交完成才返回,如果在第:阶段提交失败,TMS是知道的.并I1.TPCOMM1.T()会返回失败.默认值足TP_CMT_COMP1.ETETUXEDO的应用程序可分为两种事务模式和非事务模式用以下两种方式可以使一个TUXEDO应用处于十务模式下:1 .显式:通过调用IPbCgin().显式开始一个全局事务2 .隐式:住Ubbconfig中对一个service设置rAUT()TRAN=Y.当该service被调用时,TUXEDO会自动后动一个全局事务注意:AUToTRAN=Y只对全局W务起作用,对本地M务不起作用,例如:下面的程序中Servicea中调用了serviceBA(TPSRCINFO-RQST)(pca1.1.(Bf1.ags)I那么:> 如果A当前不处于事务模式中,A在UBBeoNF1.G中设跣了AUToTRAN=Y,那么系统自动起一个全局事务> 如果A当前己处于事务模式中.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个节在Reso1.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?可以有多少条全局事务的记录是由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:T1.OG文件的名称T1.OGS1.ZE:T1.oG文件的大小,它的大小为0<=TI.OGSIZE<=2(>48,默认他为KXI如果一个全目少务跄越多台效劳器,在年台效劳器上都应该有一个T1.oG文件,用于记录全局酬务的信息,在全局事务要回次时要用到记录在T1.OG中的信息.T1.OG可以创立在裸设法上.如果一个全局本务在该分机器上发起但还没行提交.那么它在T1.OG文件种占有一页的空间.在一般的平台上一页的大小使512字节,当该全局事务成功提交或I可滚后,它在T1.QG中的记录将被删除。与GROUPS有关的设:在TUXEDo中一个GRoUP中只能定义一个资源管理器.如果一个TUXEDo系统”多个资源管理器.就要定义多个GROUP才行.在GROUP中定义TMS的名称及个数,翔开,关闭该资源管理涔的参数,不同的资源管理器的设附都不一样.SERVICES中的设:AUTOTRN:如果一个客户端调用了设置Autotran=Y的SERVICE,并且该客户端当前不在事务模式下,那么TUXEDO自动为该SERVICE启动一个全局小务.TRANST1ME:对因设置Am-OTRAN的而起动的事务设置拉时时间.我认为前秒.0表示没有超时.全用务中用到的函数在TUXEDO中有两套操作全局小务的函数ATMITUXEDo自己提供的函数TX由X1OPEN定义的函数它们根本差不多,因为TX是以ATM1.为根底定义的.区别1. 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)描述:关闭与个资源管理器汨连接,如果采用默认的TPDoNE()该函数会自动被调用,参数:无返回值:失败返回-1.错派号保存在全局变册tperrn。中.inttpbegin(unsigned1.ongtimeout,1.ongf1.ags)描述:开始一个全局步务参数:timeout:全局事务的超IH时间.从IPbCa(讲始.过了TIMEOUT秒该全局事务还没有完成.该全同事务将因超时而回滚,范围为OU>233秒,0表示可以为无穷长.注意:TIMEoUT应该大于SCANUNITF1.AGS:保存值,现在没有用到,要设为0返回依:失败返回1,错误号保存在全局变“ttperrn。中。inttpcommit(1.ongf1.ags)描述:对一个全局事务进行提交操作参数: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,那么只能在进程中调用TPRESUME().注意:一个全局事务被挂起之后.超时仍然起作用.参数,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_COMMn'.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的效劳携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.USC>sqIp1.usinterna1./OraCIe2 .运行ORAC1.E的安装路径下的rdb<nsa<tain/xavieu.Sq1SQI.>0d:ora81rdbmsad三inxavie<.Sq1.3 .授权SQDgrantse1.ectonVSXatranS$topub1.icwithgrantoption;SQ1.>grantse1.ectonvSpending_xatrans$copub1.icwithgrantoption:4,用SyStenI用户(决省的口令是三anager)连接并授权SQ1.>connectSyStem/managerSQ1.>grantse1.ectanytab1.etopub1.ic:二、TUXEDO的配量1 .修改TUXEDO安装路径的Udataobj目录下的RM文件.把以OraC1.e_XA:XEIoSW:开头的一行用#注择原,并参加一行:Orac1e.XA: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和OraSq1.8.1ib,可到ORACI.E数据库的效劳端相应目录下把这两个文件摇到当前机器ORAC1.E的客户端下的财应目录下.3 .配置Ubbconfig1 .在*UAC1IINES节中增加:TIXXiDEVICE=*homeoracIetempsimpdb./TI.CX;*T1.ogname=T1.ogTIGSIZE=2002.改*GR0i;PS节的配置为:(scott/tiger为本数据库所采用的用户及1.1.令.可根据需要更改)CROVpSGROUP1.U1.ID=Siiiip1.eGRPNO=IOPENINFO-0rac1eX:0rac1e_XAAcc-P/scott/1iger*SesTm-600MnxCur-51.ogDir=.”TMSNAME="TMS0RA8i"R1.SaKJNT=2修改后的配置文件Ubb内容如下IPCKEY123456DOMAINII)simpappMASTERsimp1.eMaxaccessers100MAXSERVERS50MAXSERVICES100MODE1.SUM1.DBA1.N*11I1NESserver1.MID=Simp1.eAPPD1.R="d:test”Tuxconfic="*dztesttuxconfi*TUXDIR="d:tux71”T1.OGDEV1.CE="d:tes1.T1.0G”T1GNME=T1.OGT1.ogsize=Ioc*GRWPSGROUP1.1.AIID=Simp1.CGRPNO-IoPEN1.NFO-Orac1.eXAiOrac1.e*cc-Pscotttiger*S<j1.Net-DEM(>*SesTm-600MaxCur=5÷1.x)gDir=.”TMSNAVIE="TMSORA8i.Tx1.SCO1.XT=2SERVERSDEFAU1.T:C!PT=*-A*testSRVGRP=GROUPISRVID=ISERVICES说明,QPQnNFO的含义P:指定用户名与口令,通过该用户名与口令与数据库建立连接,上面的配徨中用户为SCOtt,口令为tigerSq1.Nct:如果TUXH)O效劳器与数据库效劳器不在同一台机器上,TUXEDO上的ORAC1.E客户端通过网络方式与数据库效劳器建立连接.在OPENINFO中的MINet指定该数据库的S【D,如在上面的泡置中该数据库的S1.D=DEY0,如果不Sq1.Net指定,在生成的TRC文件中会有如下错误:XaO1.Kkhc1.p:XAER_RMERR:OCIScrverA1.1.achfai1.cr.ORA-12154ORA12154:TNS:无法处理效劳名SeSTm(Sessiontime1imit):InaXimUmtieatransactioncanbeinactiveMaxCur:最多可以同时翻开多少个CURSOR4.重命名以下文件,因为以下文件名与ORAC1.E带的文件名有冲突,所以要改名.1. KJXEDO安装路径inc1.ude目录下的下面文件2. 曳命名T1.XEDO安装路径Iib目录下的下面文件5. H1.TMADMINfi'itT1.OG文件,TUXEDO用一个文件T1.oG记录对数据库操作的1.乩用于协调分布式数据库的提交与回次.DA>tna<in>crd1.-b500-Zd:testTI.(XJ>cr1.og-simp1.e>q三、效劳"的程序,test,pc功能:根据客户端传的EMFN)到表EMPIREMUIE的面并把它返回蛤客户端)(inc1.ude<stdio.h>inc1.ude<atni.h>Sinc1.ude<user1.og.h>EXECS(JI.INC1.UDEsq1.ca;EXECSQ1.BEGINDEC1.ARESECTION:1.onga1._CBpno=0;charac-ename1.1.=*':EXECSQ1.VARacna三eISSTRING(11);EXECSQ1.ENDDEC1.ARESECTION;TRST(TPSVCINFO*rqst)*接收客户端来的数据”a1._empno-(PBFR32*)rqst>data:EXECSQ1.se1.ectentuncinto:ac_enamefromBIP»hereempno=:a1.eapno:if(sq1.ca.SqIeOde!=Q)(User1.ogCse1.ectfromEMPfai1.ure,sq1.code-1.d,sq1.err-%sn.sq1.ca.sq1.code,(char*)sq1ca.sq1.errn.sq1.err三c);Strcpy(rqst->data,sq1.ca.sq1.errn.sq1.errmc):tpreturn(TPFAI1.,O,rqs1.->data,O,O);)“把取出的结果返I可给客户端”Strcpy(rqst->daia,ac_ena»e);Ipreturn(TPSIICCESS1O,rqst->data,O,O):)四、写客户*程序:teetc1.i.c功能:调用TUXEDO效劳端的效劳TEST,取EMPNO=100O所对应的ENAME的维,并显示出来inc1.ude<stdio.h>Sinc1.ude"atmi.h"main(argc,argv)(1.ongreqIcn=1024:charreqbuf:/*与T1.XBDO效劳端建立连接*/if(tpinit(TP1.NIT)NU1.1.)=-1)(void)fprintf(stderr,"Tpi11itfai1.edn*);eit(1.);)*分配发送淄冲区*/reqbuf-(char)tpa1.Ioc(,STRING*.JJ1.1.,req1.e11):if(reqbuf=(char»)NUIJ.)(printf(*tpa1.Iocfai1.cdn):tpte;)strcpy(reqbuf,-1000,r):*调用ToXEDO的效劳TEST*/if(tpca1.1.(*TEST*,(char*)reqbuf,O1.,(char*)Areqbuf,(1.ong)req1.en,0<O)printf(tpca1.1.fai1.ed,tperrno=1.d,terrtext=sn-,tperrno,xpstrerror(tperrno);tpfrec(reqbuf):tterm();exit(1.);Printf("name=%sn”,reqbuf):tpfree(reqbuf):IPterO:return(O);)五、编译效劳程序1,用ORAC1.E的PROC把test,pc文件预编谛成test,c文件d:test>proctest,pcinc1.ude-%T1.XDIR%inc1ude2.用bui1.dserver把test.C编译成可执行文件,注意-r后带的Orac1.jXA与RN文件中的一致。d:tcst>bui1.dserver-otest-ftest,c-rOraCIeRA-sTEST六、译客户程序dztest>buiIdc1.ient-otestc1.i-ftestc1.i.c七、启动TTJXEDO应用系钱应能看到所有的SERVER都启动成功.这时,我们的效劳然程序ICS1.会自动与ORAC1.E数据库建立连接,并一直保持这个连接,直到TuXEDo系统或ORAC1.E数推库关巩所以在我们的程序test,pc中看不到与数据库连接的语句,因为现在与数据库的连接由TUXEDO自动管理.如果TMSj)RA8i启动失败会在当前目录生成一个*trc文件,记录失败的原因,同时TUXEDO的U1.oG文件中也会有一些燃误信息.可参考这些燃误信息.进行错误分析.d:test>tmboot-yexecTMS_0RA8i-A:processid=1072.Started.execTMS_0R18i-:processid=528Started.exectest-A:processid=876.Started.八、运行客户程序,应倦看到效劳返回的结果d:test>testc1.iname=bi1.1.到此,整个配置过程就大功i成了.ORAC1.E的其他版本的配置及在其他操作系统上的配置根本与本文所述差不多,差异主要在RM文件中所连的库文件可能会不样.9.3INTOfiMIX数据座XA的配同采用ORAC1.E数据库一样,TUXEIx)效劳器可以和INFORMIX数据库在同一台效劳器上,也可以在不同的机器上,如果在不同的机器上,在TijXEDo的效劳器上安装一个INFORMIX的客户蛤,从上一节的内容我们知道TUXEDO效劳器,jINFORMIX数据库连接有两种方式:1、不通过XA接口直接互连.适用于整个系统只有一个数据库的情况.不需要作任何的把也.2、通过XA接口互连,对整个系统有一个数据库或霎个数据库都适用,要进行一些配冏工作才行。卜面介绍来用这种互连方式的配置方法.系或说明:1.XEDO:板本n.XHD06.5(是32位的)安袋在HP-UX11.064bit上,安装目录usrtuxedoT1.XEDO的例子:usrtUXedo/sin<1.bINFORMIX:版本INN)RMIX9.21(是64位的)安装在SCoUnix5.0.5上,安装目录/INFORMIX数据库名称:mydbIiJXE1.X)用户名:TUXH1.X)注意:如果VXEDO系统是32位的,而INFoRMIX数据库的效劳战是64是,在IrXEDo系统所在的机器上应安装【FORYIX数据库的32位的客户端才行。配的步h一、INFoIOnX的的三Jt1、数据昨一定要以UnbUfferedIog方式创立,createdatabasedatabasenamcwith1.o:INFWiMIX数据库的1.OG方式有3种:BUffered,Nobuffer,Unbuffered(underbuffer)用onmonitor命令可fit看数据库是否是用unbuffered1.og方式创立的,1.ogstatus那一列为U的是unbuffered1.o方式。用OntaPe-S-1.0-Udatabasenamc;可把一个其他方式创立的数据库改为unbufferedIOg方式的.2、tuxedo用户应该有访问该数据库资源的权限。grantdbatotuxedo;如果ITXEDO用户没有访问该数据库资源的权限,当TUXEDO启动时,TMS启动会失败,在U1.OG中会出现类似下面的错误信息:145053.rs6()00!BBI.17510:1.IBTtX_CAT:262:INFO:StandardOainstarting145053.rs6000!TMSINFORMIX.202M:020602:TUXEDOVersion6.5AIX2-10O7025954CO0.0. rs6000!TMSINFORMIX.202CH:1.IBTUX_CAT:262:INFO:StandardmainstartingM5054.rs6000!TMSINFORMIX.202(H:IJBTUX_CATM66:ERROR:tpopenTPERMERRxa_opcnreturnedXAERRMERR145054.rs6000!nS,INFORMIX.20204:1.1BTVX,CT:250:ERROR:tpsvrinitfai1.ed1. rs6Q00!11S-INF0RMIX.20204:1.IBTUX_CAT:3OO:ERROR:t1.og_open:-8P-tbIopen145054.s6000!THSINFORMIX.2020-1:1.IBTUX_CAT:250:ERROR:IpsvrinitOfai1.ed145054.-s6000!TMSINFORMIX.202(W:1.IBTUXGT:300:ERROR:_t1.og_opcn:_gp_tb1.open:UNIXsysca1.1error-2145054.rs6000!tmboot.19178:020602:TUXEDOVersion6.5AIX210O7025951CO0.145054.rs6000!tmboot.19178:C¾IDTIXCAT:825:ERROR:ProcessTMSINFORMIXa1.si11p1.efai1.edwith/Ttperrno(TPERMERRresourcemanagererror)二、TUXa)O的三1 .设汽环境变“t:(在文件AISrtuxedoSi1.npdbseienv中).usrtuxedo/tux.envIFORM1.XD1.R-tmpjnntinfo11nixhc;exportIMORM1XD1RIM-ORMIXSERVER=dhc;exportINFORMIXSERVERPath=STUXDIR/bin:$INFORM1.XDIRZbin:/bin:usrbin:usrccsbin:.:exportPATHSIf1.JBPATII-$SII1.IB_PATH:5IXF0RMIXDIR/1.ib:$INF0RMIXDIR/1.ib/esq1.:$INTORMIXDIR/1.ib/c1.i:51MOKM1XDIR/1ibc+:5INFORMIXDIR/1.ib/c1.ient:5INFORMIXDIR/1.ib/dmi:/usr/1.ib:/usr/1.ib/Motif1.2INC1.1.iDE=$INFORMIXDIR/inc1./csq1.:$INFORMIXDIR/inc1.:/tuxcdo/inc1.ude:/usr/inc1.ude;exportINC1.UDECF1.AGS=J1.SINFORMIMHRinc1.-I5INTORMIXDIRinc1.esqexportCFI.AGS2 .理命名以下文件,因为以下文件名与1.NFoRM1.X中的文件名有冲突,所以要改名.1 .11JXEIX)安装路径inc1.ude目录下的下面文件2 .双命名TUXEDO安装路径Iib目录下的下面文件3 .修改ItXEDO安装路径的UdaIaobj目录下的RM文件,参加:INFORMIXDSI1.C:infX_xaswitch:1./tuxedo/1.ib1.$JNFORMIXDIR)/1.ib-1.1.(INFoRM1.XDIR)Z1.ibZesq1.-Iifxa-Iifsq1.-1ifasf-Iifgen-1ifos-1ifg1s-Ins1.-Im-Isec$INFORMIXDIR/1ib/esq1./checkapi.o-Iifg1.x4 .在TUXEDO用户下创立TMS文件:TMSXFoRYItTVXEDO通过TMSINFORMIX与INFORMIX数据库采用X协议进行通讯buiIdtas-rINFoRMIX-I)SHC-otuxedobinI三-INFORMIX5 .MFfUbbconfig1 .在*yachies节中墙加:T1GDEVICE=Vusr/tuxedo/simpdb/T1.OG*T1.ogname=T1.ogT1.oGS1.ZE=2002 .改*GRWPS节的配置为:GROUPSGROUP11.MID=Simp1.eCRPNO=ITMSNAYE="TMS_INFoRMIX"R1.SCOUNr=2openinfo=*Informix-DSHC:m)db'修改后的配置文件Ubb内容如下IPCKEY123456DomainidSiInPaPPMASTERsimp1.emxccessers100MAXSERVERS50MAXSERVICES100MODE1.SHM1.DBA1.NMACHINESserver1.AIID=Simp1.e

    注意事项

    本文(第9章:TUXEDO的数据库编程.docx)为本站会员(夺命阿水)主动上传,课桌文档仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知课桌文档(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-1

    经营许可证:宁B2-20210002

    宁公网安备 64010402000986号

    课桌文档
    收起
    展开