《Tuxedo培训》PPT课件.ppt

上传人:xt****7 文档编号:3765080 上传时间:2019-12-23 格式:PPT 页数:83 大小:1.61MB
返回 下载 相关 举报
《Tuxedo培训》PPT课件.ppt_第1页
第1页 / 共83页
《Tuxedo培训》PPT课件.ppt_第2页
第2页 / 共83页
《Tuxedo培训》PPT课件.ppt_第3页
第3页 / 共83页
点击查看更多>>
资源描述
目录,中间件概述Tuxedo概述Tuxedo基本概念BEATuxedo的功能BEATuxedo的环境变量BEATuxedo管理进程BEATuxedo常用命令使用方法BEATuxedo的开发BEATuxedo配置信息UBBCONFIGBEATuxedo与XA规范BEATuxedo超时处理BEATuxedo负载均衡BEATuxedo与Weblogic之间的调用IBMMQSeries简单介绍,中间件概述,二层结构与三层结构,中间件概述,中间件的定义中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通讯。实现应用之间的互连和互操作不同的应用对中间件有不同的要求中间件是在中间处于应用软件和系统软件之间的一类软件,而非一种软件或独立于硬件或数据库厂商(处于其产品的中间,实现其互连)的一类软件或者是客户方与服务方之间的连接件或者是需要进行二次开发的中间产品中间件=平台通信人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必需要有一个通信中间件这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来中间件和平台可能会互相转化和互相渗透,中间件概述,中间件的作用1、中间件屏蔽了底层操作系统的复杂性。2、减少了系统的维护、运行和管理的工作量。3、可以无缝地集成不同时期、不同操作系统上开发的应用软件,中间件概述,中间件的分类1、消息中间件将数据从一个应用程序发送到另一个应用程序,这就是消息中间件的主要功能。它要负责建立网络通信的通道,进行数据的可靠传送,保证数据不重发,不丢失。消息中间件的一个重要作用是可以实现跨平台的操作,为不同操作系统上的应用软件集成提供数据传送服务。主要代表是IBMMQSeries等2、交易中间件交易中间件也和消息中间件一样具有跨平台、跨网络的能力,但它的主要功能是管理分布于不同计算机上的数据的一致性,协调数据库处理分布式事务,保障整个系统的性能和可靠性。交易中间件适用于联机交易处理系统。主要代表是BEATuxedo等。3、对象中间件对象中间件也具有交易中间件的功能,它是按面向对象的模式来组织体系结构,通过对象请求代理来实现交易处理。对象请求代理体系结构主要有3种:CORBA、EJB和COM+。4、应用服务器基于WEB应用,是企业实施电子商务的基础平台。它一般是J2EE体系结构的。5、企业应用集成EAI可用于大型企业内部众多的应用系统进行有效的整合,是他们之间能够互相访问,实现互操作。6、安全中间件,Tuxedo概述,BEATuxedo支持70多个不同的硬件/操作系统平台,其中包括几乎所有的UNIX,WindowsNT,OS/400,VMS,OS/2,Windows95等等。BEATuxedo支持几乎所有的关系数据库,并能通过XA协议和Oracle、Informix、Sybase等流行数据库接口以保证交易的一致性。支持所有流行的开发工具。交易中间件的标准是由X/OPEN组织和ISO组织来制订的。BEATUXEDO遵循所有关键的应用接口标准和事务处理协议,如分布式事务处理模型DTP,事务定界标准TX,应用程序事务处理接口标准XATMI,以及和资源管理器(数据库)的接口标准XA,国际化标准XPG,中间件的互操作协议OSI-TP,网络协议支持TCP/IP、简单网络管理协议SNMP等。事实上,BEATUXEDO不仅遵循标准,而且目前的标准,如XA,XATMI等大部分是基于BEATUXEDO技术来制订的。在BEATUXEDO的30多个支持应用开发的函数调用中已有30个被OpenGroup组织接纳为X/open的标准API,同时,BEA是COBRA组织的核心会员,直接影响着面向对象技术的标准和发展方向。作为全球专业从事中间件技术的唯一的大型计算机厂商,BEATUXEDO对所有开放系统(包括硬件、操作系统和数据库等)提供平等的支持,不对某一种系统存在特别的“偏爱”,在所有系统平台上有着功能和性能上的一致表现,这也是其他中间件厂商很难真正做到的。另外,从遵循标准到制定标准,这也说明了BEATUXEDO在开放系统平台上事实上的领导地位。,Tuxedo基本概念,Tuxedo应用系统一个Tuxedo应用系统是由在一个TUXCONFIG文件中定义的资源及其客户端的总称,一个Tuxedo应用系统能够通过域网关与别的Tuxedo应用系统或其他的应用中间件系统实现互操作域(DOMAIN)域是具有相同功能或结构的应用系统的集合。应用系统可以有多台服务器组成。Tuxedo的域特性把客户/服务器模型扩展到多个独立自治的应用系统。一个域既可以是一组Tuxedo的应用程序,也可以是一组运行在另一个非Tuxedo环境中的应用程序。Tuxedo的每个域独立完成域内的操作,域间操作由域网关完成。,BEATuxedo的功能,Tuxedo具备了所有交易中间件产品所应具备的功能,作为构造三层结构应用系统的基础平台,Tuxedo的主要功能可概括为五大平台:1、应用开发平台:提供API,供开发人员调用,用于开发整个应用系统;支持多种客户端开发工具和操作系统。2、应用部署平台:通过配置文件,对应用系统进行部署,实现开发与部署分开;3、应用运行平台:提供应用系统运行的环境;在运行时可根据系统的配置提供故障恢复、负载均衡、自动伸缩、安全认证和数据加密等功能,为Tuxedo应用系统提供一个可靠的运行环境。4、应用管理平台:对整个应用系统进行管理和监控。5、应用互联平台:Tuxedo是一个高度开放的系统,能够很容易和其他应用系统互联,实现互操作。,BEATuxedo的环境变量,1、TUXDIR定义了TUXEDO的安装目录,如:TUXDIR=/home/tuxedo/tuxedo812、TUXCONFIG定义了TUXEDO配置文件的路径,如:TUXCONFIG=/home/ecif/zhangshaowei/etc/tuxedo.cfg3、BDMCONFIGTuxedo跨域访问配置文件的路径,编译之后生成的二进制配置文件bdmconfig,如:TUXCONFIG=/home/ecif/zhangshaowei/etc/bdmconfig.cfg4、WSNADDR定义了服务器提供监听tuxedo应用请求的地址,一般是serverip:port,如:WSNADDR=/128.64.96.14:13134该变量定义的IP和端口应该与配置文件中WSL进程定义的一致,TUXEDO服务才能接收到客户端的请求5、NLSPATH:消息目录的全路径6、LANG7、LD_LIBRARY_PATH(SLIB_PATH),BEATuxedo管理进程_1,1、BBL(BulletinBoardLiaison),主要对公告板等进行管理,包含了一个公告牌的本地拷贝和本地服务器上应用的状态。BulletinBoard(BB,公告板):Tuxedo把系统的配置信息保存在一个共享内存中,该共享内存称为公告板。2、DBBL(DistinguishedBulletinBoardLiaison),TUXEDO用于多服务器配置各个服务器之间的协调工作,只有当TUXEDO配置为MP方式时才需要用到DBBL。DBBL与BBL协同,保证所有的公告牌内容的一致性。3、WSL:WorkStationListener,Tuxedo系统自带的一个Server,它侦听一个指定的端口,WSC最初与该Server建立连接。4、WSH:WorkStationHandlerServer,Tuxedo系统自带的一个Server,由它处理WSC与TuxedoServer之间的通信。5、BRIDGE,不同的服务器之间通过BRIDGE进程进行通讯,该BRIDGE的侦听IP地址及端口在NADDR中指定。如果是在UNIX下要指定该BRIDGE所用的网络设备,如果是在NT下则不要。,BEATuxedo管理进程_2,6、DMADM,域间通信的进程:管理域的server,在运行时管理BDMCONFIG,对已登记的gatewaygroup提供支持,在tuxedo系统中,只能有一个DMADM进程,且不能对它采用MSSQ,不能有REPLYQ7、GWADM,管理DOMAIN的域网关进程(在/DOMAIN中是GWTDOMAIN)的SERVER,在运行时可以对某一组域网关(DomainGatewayGroup)进行管理。主要从DMADM那里取得域的配置信息,并对域网管进程及跨越域的全局事务的LOG文件进行管理8、GWTDOMAIN,处理DOMAIN之间的互操作,使本地域和调用远程域可以互相调用彼此的service,其中GMADM和GWTDOMAIN必须在一个组中,一个tuxedo应用可以有多个GWADM,GWTDOMAIN对,一个组只能有一个GMADM,GWTDOMAIN对,但一个tuxedo应用只能有一个DMADM,DMADM可以在如何一个组中,一个本地域可以和多个远程域实现互操作。9、tlisten,是TUXEDO自带的管理程序,在MP模式下,完成主机之间的初始化通讯,如非MASTER机从MASTER机中下载tuxconfig配置文件。tlisten的启动办法:tlistenl/NLSADDR,BEATuxedo常用命令使用方法,tmloadcf编译TUXEDOUBB信息tmunloadcf将TUXCONFIG转换成ASCII格式tmboot启动TUXEDO系统服务tmshutdown关闭所有或部分应用并释放IPC资源tmadminTUXEDO系统管理buildclient编译客户端程序buildserver编译服务端程序,BEATuxedo常用命令使用方法,tmloadcf编译TUXEDOUBB信息Usage:tmloadcf-ycnbubb文件命令说明:-c计算运行应用需要的IPC资源,该信息将提供给管理员,用于在各机器上配置资源。-n进行语法检查并不生成TUXCONFIG。-b控制TUXCONFIG占用的物理页数。-y无条件覆盖TUXCONFIG环境变量TUXCONFIG必须设定指向二进制TUXCONFIG文件。在安全要求高的应用中,tmloadcf不能从标准输入接受,环境变量APP_PW必须包含应用密码。tmunloadcf将TUXCONFIG转换成ASCII格式Usage:tmunloadcftmunloadcf将TUXCONFIG转换成ASCII格式用于检查。该工具读取环境变量TUXCONFIG指向的文件。输出包含所有的参数,包括TUXEDO设定的缺省值,是UBBCONFIG文件的一个超集。,BEATuxedo常用命令使用方法,tmboot启动TUXEDO系统服务Usage:tmboot-w(ait)-n(oexec)-q(uiet)-y-c(heck)-d1-A|-Bloc|-M-S|-llmid|-saout|-ggrpname|-isrvid|-ggrpname-isrvid-osequence-#-Tgroup-name-Eenvlabel-eerrcmdtmboot命令启动TUXEDO系统的应用,创建必要的IPC资源、启动相关机器的规定的系统和应用服务进程。大多数的tmboot的参数启动了部分系统进程。在以下说明和例子中,lmid,grpname和srvid是配置文件中指定的值。-A启动所有机器上的管理进程。-M启动主控机器上的管理进程。-isrvid启动服务id等于srvid的进程。-ggrpname启动指定的一组服务(含TMS)-S启动所有应用服务。-sserver-name启动可执行文件名为server-name的服务。-llmid启动TMS和指定机器上的应用服务。-Tgrpname启动指定组中所有TMS。-Blmid启动指定机器上的BBL。-ecommand指定启动进程失败后在主控机器上运行的命令名。-c打印本配置所需最少的IPC资源。,BEATuxedo常用命令使用方法,tmshutdown关闭所有或部分应用并释放IPC资源Usage:tmshutdown-wdelay|-kTERM|KILL-n(oexec)-q(uiet)-y-c(lt_ign)-A|-Bloc|-M-S|-llmid|-saout|-ggrpname|-isrvid|-ggrpname-isrvid-osequence-#-Tgroup-name-Eenvlabel-R(elocate)-Hlmid-Plmid本命令所用参数与tmboot类似(如:-A,-g,-i,-s,-S,-l,-M,-B),意义相同。当有客户端正在连接时,tmshutdown不能关闭管理服务。参数-c则可以超越此规则。该参数仅用于管理员需要立即关机而又无法及时通知客户端时。参数-wdelay在delay秒后进行强制关闭。指定的服务当即被挂起,使之不能继续接受交易请求。delay的值则允许服务在一个合理的时间内完成已经接受的请求。在延迟的时间到达后,信号SIGKILL(或SIGTERM)将发给指定的服务。该参数目的是使管理员能够关闭发生死循环或死锁的服务。-A在所有机器上启动/关闭管理的Server进程-M只在MASTER机器上启动/关闭管理的Server进程-isrvid启动/关闭某个serverid指定的Server进程-ggrpname启动/关闭某个servergroup名字指定的ServerGroup-S启动/关闭所有应用服务器(LMID)-sserver-name启动/关闭某个server名字指定的Server进程-llmidoption在指定的机器上启动/关闭所有TMS进程和应用服务器(LMID)-Tgrpname启动/关闭指定的servergroup中所有的TMS进程-Blmid在指定的机器上启动/关闭BBL进程-ecommand指定一个程序可以当在MASTER机器上启动任何一个进程失败时执行,BEATuxedo常用命令使用方法,tmadminTUXEDO系统管理Printserver(psr)服务信息1.服务的可执行文件名2.服务连接的队列名3.组名4.服务的数字id5.服务已经处理的请求数6.服务处理的全部请求的参数和7.服务正在处理的交易,若为IDLE则服务当前是空闲Printservice(psc)交易信息1.交易名2.交易函数名3.服务可执行文件名4.服务所在组名5.服务的数字id6.提供交易的机器的LMID7.交易已经执行的次数8.交易当前状态,BEATuxedo常用命令使用方法,tmadminTUXEDO系统管理Printqueue(pq)队列信息1.队列连接的服务的可执行文件名2.字符队列名,是RQADDR参数或一个随机值3.连接的服务数4.当前队列的所有请求的参数和5.实际请求数6.平均队列长度7.队列所在机器的LMIDPrintclient(pclt)客户端信息1.已经登录的客户端机器的LMID2.用户名,由tpinit()提供的3.客户端名,由tpinit()提供的4.客户端连接后经过的时间5.客户端状态6.IDLE表示客户端目前没有任何交易在工作7.IDLET表示客户端启动了一个交易8.BUSY表示客户端在工作中9.BUSYT表示客户端正在交易控制下工作10.启动/提交/中断的交易数,BEATuxedo常用命令使用方法,buildclient编译客户端程序Usage:buildclient-voexecutableffirst-file-ffirst-file-llast-file-w此处first-file表示的应该是编译器可以识别的文件。缺省的编译器是cc。一般是.c(c源程序),.C(C+源程序),.o(object)或.a(库)文件。参数解释如下:-o生成的可执行文件名-f需要在连接TUXEDO库之前传给编译器的文件名。如有多于一个的文件名,名字应用空格分隔并用引号引起。也可以使用多个-f参数。-l需要在连接TUXEDO库之前传给编译器的文件名。语法同上。-v编译过程显示。-w采用WS方式编译,BEATuxedo常用命令使用方法,buildserver编译服务端程序Usage:buildserver-voexecutable-sservice2,service3:func-fsource/object-lobject/libraryfile参数解释如下:-o生成的可执行文件名-f需要在连接TUXEDO库之前传给编译器的文件名。如有多于一个的文件名,名字应用空格分隔并用引号引起。也可以使用多个-f参数。-l需要在连接TUXEDO库之前传给编译器的文件名。语法同上。-v编译过程显示。-b指定SHM或MP模式。如无此项,两种模式都包括;使用此项可以使生成的可执行文件小一点-r连接此处指出的RM库。该RM的名字必须含在$TUXDIR/udataobj/RM文件中。,BEATuxedo的开发,1、通讯缓冲区类型2、Tuxedo的服务端编程3、Tuxedo的客户端编程4、BEATuxedo通信方式5、BEATuxedo分布式事务的处理,BEATuxedo的开发,1、通讯缓冲区类型Tuxedo的客户端与服务端之间的数据传送是通过数据库缓冲区来进行的。Tuxedo的数据缓冲区主要包括STRING、CARRAY、VIEW/VIEW32和FML/FML32。从Tuxedo7.1开始,还增加了XML数据缓冲区。在Tuxedo中客户端与服务端之间进行数据交换的缓冲区,都要用Tuxedo自己提供的API进行操作,不能采用C函数(malloc、free)。在用tpalloc()分配一块缓冲区之后,在不再需要该缓冲区时用tpfree()释放掉。STRINGSTRING类型用于数据是字符数组,且以空字符结束。如果两台机器之间的编码不一样(如一台是ASCII,另一台是EBCDIC),Tuxedo将自动进行编码/解码工作。STRING一般用于在客户端与服务器之间传送文本数据。【使用方法】:用C语言的字符串处理方式进行处理。【使用例】:客户端:if(sendbuf=tpalloc(STRING,NULL,sendlen)=NULL)fprintf(stderr,Errorallocatingsendbuffern);tpterm();exit(1);,BEATuxedo的开发,1、通讯缓冲区类型CARRAYCARRAY类型用于处理二进制数据,其中可以包含空字符,因此在使用该类型进行传输时必须指定长度。如果两台机器之间的编码不一样,Tuxedo不进行编码/解码工作。如果在客户端与服务器之间传送二进制的文件,就要采用CARRAY类型的缓冲区。【使用方法】:用二进制数据处理方式进行处理。【使用例】:客户端:if(sendbuf=tpalloc(CARRAY,NULL,sendlen)=NULL)fprintf(stderr,Errorallocatingsendbuffern);tpterm();exit(1);,BEATuxedo的开发,1、通讯缓冲区类型VIEW/VIEW32VIEW类型是应用程序定义的C结构,必须有一个VIEW描述文件来说明该结构。VIEW类型必须有子类型,用来说明每个结构成员的类型。VIEW32类型与VIEW相似,只是允许更大的字符域、更多的域,以及更全面的类型。使用VIEW/VIEW32类型需指定以下环境变量:VIEWDIR/VIEWDIR32:VIEW结构定义文件的存放路径,用逗号隔开;VIEWFILES/VIEWFILES32:使用的VIEW结构定义文件名,用逗号隔开。一般在本应用的setenv文件中指定以上环境变量的设置。VIEW的使用过程:(1)定义一个VIEW(VIEW32)的描述文件*.v(2)用viewc(viewc32)命令进行编译,生成对应的*.h文件和*.V文件(3)定义环境变量VIEWDIR(VIEWDIR32)和VIEWFILES(VIEWFILES32)VIEWDIR(VIEWDIR32)为*.V文件路径VIEWFILES(VIEWFILES32)为*.V文件名,如果有多个,采用,号隔开(4)在使用到该VIEW(VIEW32)的程序中用#include包含生成的*.h文件(5)在程序中可以象使用C语言的结构体一样使用该VIEW(VIEW32),BEATuxedo的开发,1、通讯缓冲区类型FML/FML32FML类型是Tuxedo自定义的类型,它的每个数据域均有自己的标志符、发生频次和长度指示器。FML(FML32)缓冲区类似于一个表,它一般用在与数据库有关的操作中,如把查询结果通过FML(FML32)缓冲区发送到客户端,它有自己的一套函数对其进行操作。FML(FML32)的使用类似于VIEW(VIEW32)。FML与FML32相类似,区别在于:(1)FML32中使用32位的数表示字段的ID和该字段的长度,FML中使用的是16位的数,所以FML32能表示更大的缓冲区(2)对FML32的操作函数都以32结尾,环境变量也以32结尾,BEATuxedo的开发,1、通讯缓冲区类型XML从Tuxedo7.1开始,Tuxedo支持XML缓冲区,并可根据XML中某个ELEMENT(元素)的值、ELEMENT的类型或ATTRIBUTE(属性)的值实现数据依赖路由。同CARRAY一样,在对XML缓冲区进行操作时要指定缓冲区的长度。在Tuxedo7.1中内置了XMLPARSER,它主要完成以下工作:(1)自动检测XML缓冲区所采用的字符集(2)如果XML缓冲区所采用的字符集不是ASCII或EBCDIC字符集,把ELEMENT和ATTRIBUTE的名字转换为ASCII或EBCDIC(3)检查缓冲区中ELEMENT的内容和ATTRIBUTE的值(4)数据类型转换。在数据依赖路由中,如果是采用XML类型,要指定所采用的路由字段的数据类型,XML只支持字符型的数据。如果路由字段是数字型的,将自动进行类型转换XML使用数据依赖路由需要在UBBCONFIG中ROUTING小节中指定,BEATuxedo的开发,2、Tuxedo的服务端编程服务程序的入口参数TPSVCINFO/*interfacetoserviceroutines*/structtpsvcinfo#defineXATMI_SERVICE_NAME_LENGTH32charnameXATMI_SERVICE_NAME_LENGTH;/*servicenameinvoked*/longflags;/*describesserviceattributes*/char*data;/*pointertodata*/longlen;/*requestdatalength*/intcd;/*reservedforfutureuse*/longappkey;/*applicationauthenticationclientkey*/CLIENTIDcltid;/*clientidentifierfororiginatingclient*/;typedefstructtpsvcinfoTPSVCINFO;charnameXATMI_SERVICE_NAME_LENGTH该Service的名字longflags;CLIENT端在tpcall、tpacall等的FLAGS中设置的值char*data;指向客户端发送过来的缓冲区的首地址longlen;data缓冲区的长度intcd;当采用CONVERSATION通信方式时,对应的CD值。longappkey;当采用安全认证时,该客户端所对应的KEY。CLIENTIDcltid;用于识别该客户端的ID。,BEATuxedo的开发,2、Tuxedo的服务端编程tpreturn服务程序返回结果【函数原型】voidtpreturn(intrval,longrcode,char*data,longlen,longflags)【功能说明】tpreturn函数标志服务处理结束,并将返回信息发送给请求者。【参数说明】rval:TPSUCCESS服务处理成功;TPFAIL服务处理失败;rcode:通过该参数返回调用者一个应用自定义的值,客户端可以查询全局变量tpurcode访问rcode值;data:返回包数据指针;len:返回包长度;flags:未使用,置为0【返回值】无【使用例】:tpreturn(TPSUCCESS,0,rqst-data,0L,0);,BEATuxedo的开发,2、Tuxedo的服务端编程tpsvrinit-服务初始化【函数原型】inttpsvrinit(intagrc,char*argv)【功能说明】在Server启动时,它将自动调用函数tpsvrinit(intargc,char*argv)。如果该Server所在的GROUP配置了连接数据库的接口,那么在默认情况下,该Service将自动调用TPOPEN(),建立与数据库的连接。【参数说明】intargc,char*argv参数的含义与main()函数的参数含义一样。【返回值】执行成功返回0,失败返回-1,BEATuxedo的开发,2、Tuxedo的服务端编程tpsvrdone-服务清理函数【函数原型】inttpsvrdone()【功能说明】在Server终止时,tpsvrdone做一些清除工作,如断开与数据库的连接、从系统的BB中清除与该Server对应的登记项。【参数说明】无【返回值】无,BEATuxedo的开发,3、Tuxedo的客户端Tuxedo有两种客户端:本地客户端和远程客户端NativeClient(本地客户端):是指与Tuxedo服务器在同一台机器上,不用通过网络就可以访问到Tuxedo服务器的客户端。WorkstationClient(远程客户端):是指要通过网络才可以访问到Tuxedo服务器的客户端。本地客户端与远程客户端的主要区别(1)本地客户端只能用C或COBAL语言编写,远程客户端可以用几乎所有的编程语言编写(2)在远程客户端所在的机器上要安装Tuxedo的客户端软件,并且要设置相应的环境变量。在本地客户端上则不用。(3)用buildclient编译远程客户端程序时要加“W”,编译本地客户端则不用远程客户端与Tuxedo服务器建立连接的过程(1)WSC调用tpinit()或tpchkauth()(2)WSC采用在WSNADDR中指定的IP地址与服务端的WSL建立连接(3)WSL为该WSC指定一个WSH,并把该WSH的侦听端口返回给WSC(4)WSC采用返回的端口与指定的WSH建立连接,并与WSL断开连接,这之后WSC与TuxedoServer之间的通信通过WSH进行处理,与WSL无关。(5)tpinit()或tpchkauth()调用返回,BEATuxedo的开发,2、Tuxedo的客户端与远程客户端有关的配置(1)在MACHINES中配置MAXWSCLIENTS,即同时连接到该服务器上最多可以有多少个远程客户端(2)在SERVERS中要配置WSLServerWSLSRVGRP=GROUP1SRVID=1000CLOPT=-A-n/128.64.196.14:13134-m2-M5-x6“CLOPT中可带的参数为:-nnetaddr:WSL的侦听端口,远程客户端通过该端口与服务器建立连接-mminh:最少启动多少个WSH进程-Mmaxh:最多启动多少个WSH进程,默认值为MAXWSCLIENTS/x-xmpx_factor:每个WSH进程可以同时与多少个远程客户端建立连接-ccompression_threshold:如果在远程客户端与服务器之间传送的数据包大小(单位为字节)超过“-c”指定的参数,就自动进行数据压缩。-TClient_timeout:指定一个远程客户端的空闲时间。单位为分钟,如果没有指定,WSH永远不会自动断开远程客户端的连接。-ttimeout_factor:指定远程客户端与WSH建立连接的时间。在指定时间内无法建立连接,那么连接将失败-pminwshport-Pmaxwshport:指定WSH可以使用的端口范围,BEATuxedo的开发,2、Tuxedo的客户端在远程客户端的机器上要设置的环境变量TUXDIR:Tuxedo客户端的安装目录WSNADDR:远程客户端通过该IP地址与服务器建立连接,该变量必须。WSTYPE:客户端类型,该变量可选。客户端与服务端之间的通信方式(1)同步调用(2)异步调用(3)管道(4)会话方式(5)广播、通知(6)/Q队列(7)发布/订阅,BEATuxedo的开发,3、Tuxedo的客户端编程为了与Tuxedo服务器端建立连接,TuxedoClient要调用tpchkauth()检查该Tuxedo服务端所采用的安全方式,并根据得到的值做相应的处理,然后调用tpinit()建立与Tuxedo的连接,在Tuxedo服务器端的结果返回之后,调用tpterm()断开与TuxedoServer的连接。,BEATuxedo的开发,3、Tuxedo的客户端编程tpchkauth安全认证【函数原型】inttpchkauth()【功能说明】检查该TuxedoServer所采用的安全方式【参数说明】无【返回值】TPNOAUTH:不需要认证TPSYSAUTH:需要口令认证TPAPPSUTH:需要口令认证,并且还需要应用级的认证或授权1:调用失败,错误号保证在全局变量tperrno中,BEATuxedo的开发,3、Tuxedo的客户端编程tpinit建立连接【函数原型】inttpinit()【功能说明】与Tuxedo服务器端建立连接【参数说明】无【返回值】1:调用失败,错误号保证在全局变量tperrno中,BEATuxedo的开发,3、Tuxedo的客户端编程tpterm断开连接【函数原型】inttpterm()【功能说明】与Tuxedo服务器端断开连接【参数说明】无【返回值】1:调用失败,错误号保证在全局变量tperrno中,BEATuxedo的开发,4、BEATuxedo通信方式(1)同步调用(2)异步调用(3)管道(4)会话方式(5)广播、通知(6)/Q队列(7)发布/订阅,BEATuxedo的开发,4、BEATuxedo通信方式(1)同步调用tpcall,C,S,BEATuxedo的开发,tpcall同步调用【函数原型】inttpcall(char*svc,char*idata,longilen,char*odata,long*olen,longflags)【功能说明】客户端同步调用服务端名为svc的Service【参数说明】*svc:Service的名称char*idata:输入缓冲区的地址,客户端传给服务端的参数放在该缓冲区内longilen:输入缓冲区的长度char*odata:输出缓冲区的地址,服务端传给客户端的结果放在该缓冲区内long*olen:输出缓冲区的长度longflags:调用标志,有以下几个:TPNOTRANTPNOCHANGETPNOBLOCKTPNOTIMETPSIGRSTRT【返回值】0:调用成功,1:调用失败,错误号保证在全局变量tperrno中,BEATuxedo的开发,4、BEATuxedo通信方式(1)同步调用,BEATuxedo的开发,4、BEATuxedo通信方式(2)异步调用tpacall()tpgetrply()tpcancel(),C,S,S,C1,C2,S,BEATuxedo的开发,tpacall异步调用【函数原型】inttpacall(char*svc,char*data,longlen,longflags)【功能说明】客户端异步调用服务端名为svc的Service,不等服务端返回结果,程序即可继续往下走,在某个地方可调用tpgetrply()取得服务端的返回【参数说明】*svc:Service的名称char*data:输入缓冲区的地址,客户端传给服务端的参数放在该缓冲区内longlen:输入缓冲区的长度longflags:调用标志,有以下几个:TPNOREPLY:设置了该参数,则服务端不会给该客户端发送应答TPNOTRANTPNOBLOCKTPNOTIMETPSIGRSTRT【返回值】1:调用失败,成功返回一个Handler,可做为tpgetrply的参数,用于获取服务端的返回结果,BEATuxedo的开发,tpgetrply获取应答步调用【函数原型】inttpgetrply(int*cd,char*data,long*len,longflags)【功能说明】取出服务端对tpacall()的应答【参数说明】*cd:tpacall()返回的Handlerchar*data:返回缓冲区的地址,客户端传给服务端的参数放在该缓冲区内long*len:返回缓冲区的长度longflags:调用标志,有以下几:TPGETANYTPNOCHANGETPNOBLOCKTPNOTIMETPSIGRSTRT【返回值】1:调用失败,错误号保证在全局变量tperrno中,BEATuxedo的开发,tpcancel取消服务端调用【函数原型】inttpcancel(intcd)【功能说明】如果当前的程序不处于事务模式中,取消对tpacall()的应答。如果处于事务模式中,则不能取消对tpacall()的应答,该调用会失败【参数说明】cd:tpacall()返回的Handler【返回值】1:调用失败,错误号保证在全局变量tperrno中,BEATuxedo的开发,4、BEATuxedo通信方式(2)异步调用,BEATuxedo的开发,4、BEATuxedo通信方式(3)管道tpforward(),C,S1,S3,S2,BEATuxedo的开发,tpforward管道通讯【函数原型】voidtpforward(char*service,char*data,longlen,longflags)【功能说明】服务进程在处理客户请求时,不把结果返回给客户进程,而是把处理过的结果进一步转发给后续的其他服务进程,由其他服务进程接着处理,自己继续完成另外的服务请求。被转发的服务请求的结果由后续服务进程直接返回给客户进程。【参数说明】service:要调用的Service的名字data:传送给该Service的输入缓冲区len:data缓冲区的长度flags:未使用,置为0【返回值】无,BEATuxedo的开发,4、BEATuxedo通信方式(3)管道,BEATuxedo的开发,C,S,4、BEATuxedo通信方式(4)会话方式采用会话通信方式,通信双方在建立连接之后,可以多次发送或接收数据。Tuxedo中采用的是半双工的通信方式,这种方式特别适用于大批量数据传输。发起者(originator,initiator):发起该会话的进程,她调用tpconnect()与服务器端的一个service建立连接从属者(subordinate):tpconnect()中指定的service发送者(sender):当前拥有发送权的进程,它只能发送数据接收者(receiver):当前拥有发送权的进程,它只能接收数据tpconnect(),tpsend(),tprecv(),tpdisconnect(),BEATuxedo的开发,4、BEATuxedo通信方式(5)广播、通知由服务进程向客户进程以单个(tpnotify)或批量(tpbroadcast)方式发出的未经客户请求的广播或通知信息,客户可在适当的时候检查(tpchkunsol)是否收到通知消息并定义(tpsetunsol)收到消息后所采取的动作。两种使用方式:(1)一对一(点对点):一个服务器端进程或客户端进程给某个客户端进程发消息(2)一对多(广播):一个服务器端进程或客户端进程给符合某个条件的一组客户端发消息消息的通知方式有3种:(1)IGNORE:该Tuxedo应用系统中的客户端不接收任何消息(2)SIGNAL:用SIGUSR1、SIGUSR2信号通知客户端有消息到来(3)DIPIN:当客户端调用ATMI函数时,顺便查看是否有消息,如果有则调用消息出来函数进行处理。消息的通知方式在UBBCONFIG文件的RESOURCES中设置,默认为DIPIN,BEATuxedo的开发,4、BEATuxedo通信方式(5)广播、通知,BEATuxedo的开发,P,P,Q,4、BEATuxedo通信方式(6)/Q队列/Q部件是Tuxedo系统的一个重要组成部分,它提供了一个可靠队列机制,允许消息按照某种排队规则存储到磁盘上或内存中,然后再转发给其他处理进程。这种存储转发机制可以保证在两个通信实体之间传递的消息不丢失、不重传,从而保证交易的完整性,BEATuxedo的开发,4、BEATuxedo通信方式(7)发布/订阅客户端与服务器之间还可以通过发布/订阅来进行通信,对某一事件()或某一类事件感兴趣的客户端或服务端可以订阅该事件。当该事件发生时,已订阅了该事件的进程就可以收到该事件,在程序中可对这些事件进行处理。Tuxedo的事件分为系统事件和用户自定义事件:系统事件:是由Tuxedo系统内定义的。如系统重启或关闭等,都会产生一个系统事件用户自定义事件:是由应用自己定义的事件。当某种条件满足时,调用tppost()产生该事件tppost()tpsubscribe(),BEATuxedo配置信息UBBCONFIG,一个BEATUXEDO应用包含四个基本组成部分:一个用来描述应用的配置文件执行服务请求的服务器(Server)发起请求的客户端(Client)构造和运行应用的命令UBBCONFIG文件是配置文件的文本形式,可以使用任何一个文本编辑器创建和修改。你必须为每个新应用创建一个UBBCONFIG文件。TUXCONFIG文件是配置文件的二进制形式,BEATuxedo配置信息UBBCONFIG,1、RESOURCES:设置域范围参数(必须)RESOURCES小节是一个必须存在的小节,并且必须是配置文件中的第一个小节。本节包括如下信息:共享内存的地址(IPCKEY)启动和关闭服务程序的管理点(MASTER)访问应用的用户控制(UID、GID和PERM)本应用的安全级别(SECURITY、AUTHSVC)应用中各进程的IPC限制,服务器进程的数量,以及提供的服务数(MAXACCESSERS、MAXSERVERS、MAXSERVICES)应用结构(MODEL),表明是单机器应用还是多机器应用是否使用服务器负载均衡(LDBAL)缓冲区类型和子类型的最大数目(MAXBUFTYPE、MAXBUFSTYPE)公告牌健全扫描(sanityscans)的时间间隔(SCANUNIT、SANITYSCAN)服务请求的超时值(BLOCKTIME)并发会话最大数目(MAXCONV)主动通知方法(NOTIFY、USIGNAL),BEATuxedo配置信息UBBCONFIG,2、MACHINES:配置机器(必须)应用中的每个机器必须在配置文件的MACHINES小节中有一个入口项,并且该小节必须是配置文件的第二个小节。MACHINES小节中包含应用中每个机器的如下信息:机器地址到逻辑标识(LMID)的映射配置文件的位置(TUXCONFIG)BEATUXEDO软件的安装位置(TUXDIR)应用服务器的位置(APPDIR)应用日志文件的位置(ULOGPFX)环境文件的位置(ENVFILE)MACHINES小节中必需的几个参数是LMID、TUXCONFIG、TUXDIR和APPDIR,BEATuxedo配置信息UBBCONFIG,3、GROUPS:配置组信息(必须)通过GROUPS小节可以指定从逻辑上分组的服务器集,这些服务器组以后可被用来访问资源管理器(resourcemanagers),并且便于服务器组迁移。配置文件的GROUPS小节包含对服务器组的定义。你必须为有应用服务器运行其上的机器定义至少一个服务器组。对于无事务、非分布式系统,组非常简单,只需定义组名到组号的基本映射及各组的逻辑机器即可。此外还有更多灵活选项以支持分布式的带事务的系统。组名是GROUPS小节入口项的基础,它是一个字母数字混合名称,通过它来识别一个组。一个组必须有一个唯一的组号(GRPNO),并且必须位于一个逻辑机器(LMID)上,LMID也是必须的。,BEATuxedo配置信息UBBCONFIG,4、SERVERS:配置服务器(可选)配置文件的SERVERS小节包含某个服务器进程的信息。虽然本小节并非必需,但是一个配置文件中没有本小节的应用将没有应用服务器,因此将没有实际功能。本小节的每个入口项代表一个要在应用中被启动的服务器进程,包含如下信息:一个服务器名称、组别以及数字标识(SRVGRP、SRVID)命令行选项(CLOPT)执行服务器启动顺序和启动个数的参数(SEQUENCE、MIN、MAX)一个服务器专用的环境文件(ENVFILE)与服务器队列有关的信息(RQADDR、RQPERM、REPLYQ、RPPERM)重启动信息(RESTART、RCMD、MAXGEN、GRACE)服务器被指定为一个会话服务器(CONV)重载系统范围的共享内存访问设置(SYSTEM_ACCESS),BEATuxedo配置信息UBBCONFIG,5、SERVICES:配置服务(可选)通过配置文件中的SERVICES小节可以指定BEATUXEDO服务的信息。这些信息对于无事务、非分布式应用相对简单。SERVICES小节包含下面一些信息:负载均衡信息(SRVGRP)给服务赋予优先级为不同的服务器组指定不同的服务参数缓冲区类型检查信息(BUFTYPE),BEATuxedo配置信息UBBCONFIG,6、ROUTING:配置路由(可选)UBBCONFIG文件的ROUTING小节允许对在SERVICES小节中命名的路由标准(routingcriteria)进行全面的定义(针对BEATUXEDO数据依赖性路由)。,BEATuxedo配置信息UBBCONFIG,7、NETGROUPS/NETWORK:配置网络信息UBBCONFIG文件的NETGROUPS小节描述在在局域网环境下应用可用的网络组。对于网络组的个数没有限制,每个网络组可能被分配一对机器。一个网络组不同网络成员之间采用的通讯方法由优先级机制(NETPRIO)决定。每个LMID都必须是缺省网络组(DEFAULTNET)的成员,这个组的网络组号(即NETGRPNO)必须为零。不过可以更改DEFAULTNET的缺省优先级。#NADDR指定网络连接的接入点。#NLSADDR则指定tlisten的接入点。#BRIDGE则指TCP连接所用的设备文件。,BEATuxedo配置信息UBBCONFIG,BEATuxedo配置信息UBBCONFIG的动态配置动态增加或删减服务使用tmconfig或ud32方式,BEATuxedo配置信息UBBCONFIG,BEATuxedo多机模式(MP)的配置一个Tuxedo应用系统可以部署在多台服务器上,这些服务器通过网络连接,这种部署方式称为MP方式。MP方式需要指定一台服务器做MASTER服务器,在该服务器上有一个DBBL进程,负责整个Tuxedo应用系统的管理工作。在每台服务器上有一个BBL进程,它与DBBL进程进行通信,管理各自服务器上的配置。每台服务器上还有一个名为BRIDGE和tlisten的进程,它们负责服务器之间的通信。配置MP方式的步骤:1、这些服务器之间可以通过网络互相访问2、在每台服务器上都正确安装了TuxedoServer,设置好Tuxedo需要的环境变量3、应用已发布到所有服务器上4、选择一台服务器作为MASTER5、在RESOURCES、MACHINES、NETWORK和NETGROUPS中做相应的配置,BEATuxedo与XA规范,概念分布式事务处理是指一个事务可能涉及多个数据库操作,分布式事务处理的关键是必须有一种方法可以知道事务在任何地方所做的所有动作,提交或回滚事务的决定必须产生统一的结果(全部提交或全部回滚)。通常把一个数据库内部的事务处理,如对多个表的操作,作为本地事务看待。数据库的事务处理对象是本地事务,而分布式事务处理的对象是全局事务。所谓全局事务,是指分布式事务处理环境中,多个数据库可能需要共同完成一个工作,这个工作即是一个全局事务。X/Open组织定义了分布式事务处理模型。包括应用程序(AP)、事务管理器(TM)、资源管理器(RM)、通信资源管理器(CRM)四部分。一般,常见的事务管理器(TM)是交易中间件,常见的资源管理器(RM)是数据库,常见的通信资源管理器(CRM)是消息中间件。XA就是X/OpenDTP定义的交易中间件与数据库之间的接口规范(即接口函数),交易中间件用它来通知数据库事务的开始、结束以及提交、回滚等。XA接口函数由数据库厂商提供。通常情况下,交易中间件与数据库通过XA接口规范,使用两阶段提交来完成一个全局事务,XA规范的基础是两阶段提交协议。,BEATuxedo与XA规范,BEATuxedo分布式事务的处理Tuxedo全局事务的特点:(1)可以在客户端或服务器端开始一个全局事务(2)在Tuxedo中全局事务能跨越多个进行(3)每个全局事务都有一个唯一的ID号(全局事务RID)表示,它可在Tuxedo的进程间传递(4)全局事务可以跨越DOMAINTuxedo的应用程序分为两种:事务模式和非事务模式。有以下两种方式可以使一个Tuxedo应用处于事务模式下:(1)通过调用tpopen(),显式开始一个全局事务(2)在UBBCONFIG中对一个Service设置了AUTOTRAN=Y,当该Service被调用时,Tuxedo会自动启动一个全局事务,BEATuxedo与XA规范,TuxedoXA使用步骤1、修改资源管理器RM,在$TUXDIR/udataobj/RM文件中指定数据库提供的XA库2、编译TMS(全局交易管理服务)命令:buildtmsoTMS_ORArOracle_XA3、COPYTMS_ORA到$TUXDIR/bin目录下(或者放到$APPDIR)4、在UBBCONFIG中配置TLOG日志和TMS_ORA服务5、编译UBBCONFIG6、创建TLOG(交易日志)命令:tmadmincrdl-b2048-z/disk2/tuxedo/demo/TLOGcrlog-msimple(假定逻辑机器名是simple)7、启动TUXEDO8、检查是否正常(服务是否启动、数据库连接是否正常),BEATuxedo超时处理,TUXEDO可以设置多层次的超时控制机制,达到客户端快速响应,服务器端稳定可靠的效果。SCANUNITSANITYSCANBBLQUERYDBBLWAITBLOCKTIMEWSLCLOPT-TClient_timeoutWSLCLOPT-ttimeoutWSLCLOPT-Iinit_timeoutWSLCLOPT-Nnetwork_timeoutSVCTIMOUTGRACETransactionTimeOut,BEATuxedo超时处理,SCANUNITTUXEDO中,BBL是用来对BulletinBoard进行管理和监控的系统进程,它基于时间片的轮询方式,时间片的大小就是SCANUNIT的值,SCANUNIT是Tuxedo对系统进行管理的最基本时间单位。每隔S
展开阅读全文
相关资源
相关搜索

当前位置:首页 > 图纸专区 > 课件教案


copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!