Tuxedo概述、基本概念和功能介绍_第1页
Tuxedo概述、基本概念和功能介绍_第2页
Tuxedo概述、基本概念和功能介绍_第3页
Tuxedo概述、基本概念和功能介绍_第4页
Tuxedo概述、基本概念和功能介绍_第5页
已阅读5页,还剩78页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、Tuxedo概述、基本概念和功能介绍目录中间件概述Tuxedo概述Tuxedo基本概念BEA Tuxedo的功能BEA Tuxedo的环境变量BEA TuxedoBEA Tuxedo常用命令使用方法BEA Tuxedo的开发BEA Tuxedo配置信息UBBCONFIGBEA Tuxedo与XA规范BEA Tuxedo超时处理BEA Tuxedo负载均衡BEA Tuxedo 与 Weblogic之间的调用IBM MQSeries简单介绍中间件概述二层结构与三层结构中间件概述中间件的定义 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术之间共享资源,中间件位于客户机服

2、务器的操作系统之上,管理计算资源和网络通讯。实现应用之间的互连和互操作不同的应用对中间件有不同的要求中间件是在中间处于应用软件和系统软件之间的一类软件,而非一种软件或独立于硬件或数据库厂商(处于其产品的中间,实现其互连)的一类软件或者是客户方与服务方之间的连接件或者是需要进行二次开发的中间产品中间件=平台通信人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必需要有一个通信中间件这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来中间件和平台可能会互相转化和互相渗透中间件概述中间件的作用1、中间件屏

3、蔽了底层操作系统的复杂性。2、减少了系统的维护、运行和管理的工作量。3、可以无缝地集成不同时期、不同操作系统上开发的应用软件中间件概述中间件的分类1、消息中间件 将数据从一个应用程序发送到另一个应用程序,这就是消息中间件的主要功能。它要负责建立网络通信的通道,进行数据的可靠传送,保证数据不重发,不丢失。消息中间件的一个重要作用是可以实现跨平台的操作,为不同操作系统上的应用软件集成提供数据传送服务。主要代表是IBM MQSeries等2、交易中间件 交易中间件也和消息中间件一样具有跨平台、跨网络的能力,但它的主要功能是管理分布于不同计算机上的数据的一致性,协调数据库处理分布式事务,保障整个系统的

4、性能和可靠性。交易中间件适用于联机交易处理系统。主要代表是BEA Tuxedo等。3、对象中间件 对象中间件也具有交易中间件的功能,它是按面向对象的模式来组织体系结构,通过对象请求代理来实现交易处理。对象请求代理体系结构主要有3种:CORBA、EJB和COM+。4、应用服务器 基于WEB应用,是企业实施电子商务的基础平台。它一般是J2EE体系结构的。5、企业应用集成 EAI可用于大型企业内部众多的应用系统进行有效的整合,是他们之间能够互相访问,实现互操作。6、安全中间件Tuxedo概述 BEA Tuxedo支持70多个不同的硬件/操作系统平台,其中包括几乎所有的UNIX,Windows NT,

5、 OS/400, VMS, OS/2, Windows95 等等。 BEA Tuxedo支持几乎所有的关系数据库,并能通过XA协议和 Oracle、Informix、Sybase等流行数据库接口以保证交易的一致性。支持所有流行的开发工具。 交易中间件的标准是由X/OPEN组织和ISO组织来制订的。BEA TUXEDO遵循 所有关键的应用接口标准和事务处理协议,如分布式 事务处理模型DTP,事务定界标准TX,应用程序事务处理接口标准XATMI,以及和资源管理器 (数据库)的接口标准XA,国际化标准 XPG,中间件的互操作协议OSI-TP, 网络协议支持TCP/IP、简单 网络管理协议SNMP等。

6、 事实上,BEA TUXEDO不仅遵循标准,而且目前的标准,如XA, XATMI等大部分是基于BEA TUXEDO技术来制订的。在BEA TUXEDO的30多个支持应用 开发的函数调用中已有30个被Open Group组织接纳为X/open的标准API,同时,BEA是COBRA组织的核心会员,直接影响着面向对象技术的标准和发展方向。 作为全球专业从事中间件技术的唯一的大型计算机厂商,BEA TUXEDO对所有开放系统(包括硬件、操作系统和数据库等)提供平等的支持,不对某一种系统存在特别的“偏爱”,在所有系统平台上有着功能和性能上的一致表现,这也是其他中间件厂商很难真正做到的。另外,从遵循标准到

7、制定标准,这也说明了BEA TUXEDO在开放系统平台上事实上的领导地位。Tuxedo基本概念Tuxedo应用系统 一个Tuxedo应用系统是由在一个TUXCONFIG文件中定义的资源及其客户端的总称,一个Tuxedo应用系统能够通过域网关与别的Tuxedo应用系统或其他的应用中间件系统实现互操作域(DOMAIN) 域是具有相同功能或结构的应用系统的集合。应用系统可以有多台服务器组成。Tuxedo的域特性把客户/服务器模型扩展到多个独立自治的应用系统。一个域既可以是一组Tuxedo的应用程序,也可以是一组运行在另一个非Tuxedo环境中的应用程序。 Tuxedo的每个域独立完成域内的操作,域间

8、操作由域网关完成。BEA Tuxedo的功能 Tuxedo具备了所有交易中间件产品所应具备的功能,作为构造三层结构应用系统的基础平台,Tuxedo的主要功能可概括为五大平台:1、应用开发平台: 提供API,供开发人员调用,用于开发整个应用系统;支持多种客户端开发工具和操作系统。2、应用部署平台: 通过配置文件,对应用系统进行部署,实现开发与部署分开;3、应用运行平台: 提供应用系统运行的环境;在运行时可根据系统的配置提供故障恢复、负载均衡、自动伸缩、安全认证和数据加密等功能,为Tuxedo应用系统提供一个可靠的运行环境。4、应用管理平台: 对整个应用系统进行管理和监控。5、应用互联平台: Tu

9、xedo是一个高度开放的系统,能够很容易和其他应用系统互联,实现互操作。BEA Tuxedo的环境变量1、TUXDIR 定义了TUXEDO的安装目录,如: TUXDIR=/home/tuxedo/tuxedo812、TUXCONFIG 定义了TUXEDO配置文件的路径,如: 3、BDMCONFIG Tuxedo跨域访问配置文件的路径,编译之后生成的二进制配置文件bdmconfig,如: 4、WSNADDR 定义了服务器提供监听tuxedo应用请求的地址,一般是 server ip:port,如: WSNADDR=/128.64.96.14:13134 该变量定义的IP和端口应该与配置文件中WS

10、L进程定义的一致,TUXEDO服务才能接收到客户端的请求5、NLSPATH:消息目录的全路径6、LANG7、LD_LIBRARY_PATH(SLIB_PATH)BEA Tuxedo管理进程_11、BBL(Bulletin Board Liaison),主要对公告板等进行管理,包含了一个公告牌的本地拷贝和本地服务器上应用的状态。 Bulletin Board(BB,公告板):Tuxedo把系统的配置信息保存在一个共享内存中,该共享内存称为公告板。2、DBBL(Distinguished Bulletin Board Liaison),TUXEDO用于多服务器配置各个服务器之间的协调工作,只有当T

11、UXEDO配置为MP方式时才需要用到DBBL。DBBL与BBL协同,保证所有的公告牌内容的一致性。3、WSL:WorkStation Listener,Tuxedo系统自带的一个Server,它侦听一个指定的端口,WSC最初与该Server建立连接。4、WSH:WorkStation Handler Server ,Tuxedo系统自带的一个Server,由它处理WSC与Tuxedo Server之间的通信。5、BRIDGE,不同的服务器之间通过BRIDGE进程进行通讯,该BRIDGE的侦听IP地址及端口 在NADDR中指定。如果是在UNIX下要指定该BRIDGE所用的网络设备,如果是在NT下

12、则不要。BEA Tuxedo管理进程_26、DMADM,域间通信的进程:管理域的server,在运行时管理BDMCONFIG,对已登记的gateway group提供支持,在tuxedo系统中,只能有一个DMADM进程,且不能对它采用MSSQ,不能有REPLYQ7、GWADM,管理DOMAIN的域网关进程(在/DOMAIN中是GWTDOMAIN)的SERVER,在运行时可以对某一组域网关(Domain Gateway Group)进行管理。主要从DMADM那里取得域的配置信息,并对域网管进程及跨越域的全局事务的LOG文件进行管理8、GWTDOMAIN,处理DOMAIN之间的互操作,使本地域和调

13、用远程域可以互相调用彼此的service,其中GMADM和GWTDOMAIN必须在一个组中,一个tuxedo应用 可以有多个GWADM,GWTDOMAIN对,一个组只能有一个GMADM,GWTDOMAIN对,但一个tuxedo应用只能有一个DMADM, DMADM可以在如何一个组中,一个本地域可以和多个远程域实现互操作。9、tlisten,是TUXEDO自带的管理程序,在MP模式下,完成主机之间的初始化通讯,如非MASTER机从MASTER机中下载tuxconfig配置文件。tlisten的启动办法:tlisten l /NLSADDRBEA Tuxedo常用命令使用方法tmloadcf编译T

14、UXEDO UBB信息tmunloadcf将TUXCONFIG转换成ASCII格式tmboot启动TUXEDO系统服务tmshutdown关闭所有或部分应用并释放IPC资源tmadminTUXEDO系统管理buildclient编译客户端程序buildserver编译服务端程序BEA Tuxedo常用命令使用方法tmloadcf编译TUXEDO UBB信息Usage:tmloadcf -ycnb ubb文件命令说明:-c 计算运行应用需要的IPC资源,该信息将提供给管理员,用于在各机器上配置资源。-n 进行语法检查并不生成TUXCONFIG。-b 控制TUXCONFIG占用的物理页数。-y 无

15、条件覆盖TUXCONFIG环境变量TUXCONFIG必须设定指向二进制TUXCONFIG文件。在安全要求高的应用中,tmloadcf不能从标准输入接受,环境变量APP_PW必须包含应用密码。tmunloadcf将TUXCONFIG转换成ASCII格式Usage:tmunloadcf tmunloadcf将TUXCONFIG转换成ASCII格式用于检查。该工具读取环境变量TUXCONFIG指向的文件。输出包含所有的参数,包括TUXEDO设定的缺省值,是UBBCONFIG文件的一个超集。BEA Tuxedo常用命令使用方法tmboot启动TUXEDO系统服务Usage: tmboot -w(ait

16、) -n(oexec) -q(uiet) -y -c(heck) -d1 -A | -B loc | -M -S | -l lmid | -s aout | -g grpname | -i srvid | -g grpname -i srvid -o sequence-# -T group-name -E envlabel -e errcmdtmboot命令启动TUXEDO系统的应用,创建必要的IPC资源、启动相关机器的规定的系统和应用服务进程。大多数的tmboot的参数启动了部分系统进程。在以下说明和例子中,lmid,grpname和srvid是配置文件中指定的值。-A 启动所有机器上的管理

17、进程。-M 启动主控机器上的管理进程。-i srvid 启动服务id等于 srvid的进程。-g grpname 启动指定的一组服务(含TMS)-S启动所有应用服务。-s server-name 启动可执行文件名为server-name的服务。-l lmid 启动TMS和指定机器上的应用服务。-T grpname 启动指定组中所有TMS。-B lmid 启动指定机器上的BBL。-e command 指定启动进程失败后在主控机器上运行的命令名。-c 打印本配置所需最少的IPC资源。 BEA Tuxedo常用命令使用方法tmshutdown关闭所有或部分应用并释放IPC资源Usage: tmshu

18、tdown -wdelay|-k TERM|KILL -n(oexec) -q(uiet) -y -c(lt_ign)-A | -B loc | -M -S | -l lmid | -s aout |-g grpname | -i srvid | -g grpname -i srvid-o sequence-# -T group-name -E envlabel-R(elocate) -H lmid -P lmid本命令所用参数与tmboot类似(如:-A, -g, -i, -s, -S, -l, -M, -B),意义相同。当有客户端正在连接时,tmshutdown 不能关闭管理服务。参数-c

19、则可以超越此规则。该参数仅用于管理员需要立即关机而又无法及时通知客户端时。参数-w delay 在delay秒后进行强制关闭。指定的服务当即被挂起,使之不能继续接受交易请求。delay的值则允许服务在一个合理的时间内完成已经接受的请求。在延迟的时间到达后,信号SIGKILL(或SIGTERM)将发给指定的服务。该参数目的是使管理员能够关闭发生死循环或死锁的服务。-A 在所有机器上启动/关闭管理的Server进程 -M 只在MASTER机器上启动/关闭管理的Server进程 -i srvid 启动/关闭某个server id指定的Server进程 -g grpname 启动/关闭某个server

20、 group名字指定的Server Group -S 启动/关闭所有应用服务器(LMID) -s server-name 启动/关闭某个server名字指定的Server进程 -l lmid option 在指定的机器上启动/关闭所有TMS进程和应用服务器(LMID) -T grpname 启动/关闭指定的server group中所有的TMS进程 -B lmid 在指定的机器上启动/关闭BBL进程 -e command 指定一个程序可以当在MASTER机器上启动任何一个进程失败时执行BEA Tuxedo常用命令使用方法tmadminTUXEDO系统管理Printserver(psr)服务信息

21、1. 服务的可执行文件名2. 服务连接的队列名3. 组名4. 服务的数字id5. 服务已经处理的请求数6. 服务处理的全部请求的参数和7. 服务正在处理的交易,若为IDLE则服务当前是空闲Printservice(psc)交易信息1. 交易名2. 交易函数名3. 服务可执行文件名4. 服务所在组名5. 服务的数字id6. 提供交易的机器的LMID7. 交易已经执行的次数8. 交易当前状态BEA Tuxedo常用命令使用方法tmadminTUXEDO系统管理Printqueue(pq)队列信息1. 队列连接的服务的可执行文件名2. 字符队列名,是RQADDR参数或一个随机值3. 连接的服务数4.

22、 当前队列的所有请求的参数和5. 实际请求数6. 平均队列长度7. 队列所在机器的LMIDPrintclient(pclt)客户端信息1. 已经登录的客户端机器的LMID2. 用户名,由tpinit()提供的3. 客户端名,由tpinit()提供的4. 客户端连接后经过的时间5. 客户端状态6. IDLE表示客户端目前没有任何交易在工作7. IDLET表示客户端启动了一个交易8. BUSY表示客户端在工作中9. BUSYT表示客户端正在交易控制下工作10. 启动/提交/中断的交易数BEA Tuxedo常用命令使用方法buildclient编译客户端程序Usage:buildclient -v

23、o executable f first-file -f first-file -l last-file -w此处first-file表示的应该是编译器可以识别的文件。缺省的编译器是cc。一般是.c(c源程序),.C(C+源程序),.o(object)或.a(库)文件。参数解释如下:-o 生成的可执行文件名-f 需要在连接TUXEDO库之前传给编译器的文件名。如有多于一个的文件名,名字应用空格分隔并用引号引起。也可以使用多个-f参数。-l 需要在连接TUXEDO库之前传给编译器的文件名。语法同上。-v 编译过程显示。-w 采用WS方式编译BEA Tuxedo常用命令使用方法buildserve

24、r编译服务端程序Usage:buildserver -v o executable -s service2,service3:func -f source/object -l object/library file参数解释如下:-o 生成的可执行文件名-f 需要在连接TUXEDO库之前传给编译器的文件名。如有多于一个的文件名,名字应用空格分隔并用引号引起。也可以使用多个-f参数。-l 需要在连接TUXEDO库之前传给编译器的文件名。语法同上。-v 编译过程显示。-b 指定SHM或MP模式。如无此项,两种模式都包括;使用此项可以使生成的可执行文件小一点-r 连接此处指出的RM库。该RM的名字必须

25、含在$TUXDIR/udataobj/RM文件中。BEA Tuxedo的开发1、通讯缓冲区类型2、Tuxedo的服务端编程3、Tuxedo的客户端编程4、BEA Tuxedo通信方式 5、BEA Tuxedo分布式事务的处理 BEA Tuxedo的开发1、通讯缓冲区类型 Tuxedo的客户端与服务端之间的数据传送是通过数据库缓冲区来进行的。Tuxedo的数据缓冲区主要包括STRING、CARRAY、VIEW/VIEW32和FML/FML32。从开始,还增加了XML数据缓冲区。 在Tuxedo中客户端与服务端之间进行数据交换的缓冲区,都要用Tuxedo自己提供的API进行操作,不能采用C函数(m

26、alloc、free)。在用tpalloc()分配一块缓冲区之后,在不再需要该缓冲区时用tpfree()释放掉。STRING STRING类型用于数据是字符数组,且以空字符结束。如果两台机器之间的编码不一样(如一台是ASCII,另一台是EBCDIC),Tuxedo将自动进行编码/解码工作。STRING一般用于在客户端与服务器之间传送文本数据。【使用方法】:用C语言的字符串处理方式进行处理。【使用例】:客户端:if ( ( sendbuf = tpalloc( STRING, NULL, sendlen ) ) = NULL ) fprintf( stderr, Error allocating

27、 send buffern );tpterm( );exit( 1 );BEA Tuxedo的开发1、通讯缓冲区类型CARRAY CARRAY类型用于处理二进制数据,其中可以包含空字符,因此在使用该类型进行传输时必须指定长度。如果两台机器之间的编码不一样,Tuxedo不进行编码/解码工作。如果在客户端与服务器之间传送二进制的文件,就要采用CARRAY类型的缓冲区。【使用方法】:用二进制数据处理方式进行处理。【使用例】:客户端:if ( ( sendbuf = tpalloc( CARRAY, NULL, sendlen ) ) = NULL ) fprintf( stderr, Error a

28、llocating send buffern );tpterm( );exit( 1 );BEA Tuxedo的开发1、通讯缓冲区类型VIEW / VIEW32 VIEW类型是应用程序定义的C结构,必须有一个VIEW描述文件来说明该结构。VIEW类型必须有子类型,用来说明每个结构成员的类型。 VIEW32类型与VIEW相似,只是允许更大的字符域、更多的域,以及更全面的类型。使用VIEW/VIEW32类型需指定以下环境变量:VIEWDIR / VIEWDIR32:VIEW结构定义文件的存放路径,用逗号隔开;VIEWFILES / VIEW:使用的VIEW结构定义文件名,用逗号隔开。一般在本应用的

29、setenv文件中指定以上环境变量的设置。VIEW的使用过程:(1)定义一个VIEW(VIEW32)的描述文件*.v(2)用viewc(viewc32)命令进行编译,生成对应的*.h文件和*.V文件(3)定义环境变量VIEWDIR(VIEWDIR32)和VIEWFILES(VIEW)VIEWDIR(VIEWDIR32)为*.V文件路径VIEWFILES(VIEW)为*.V文件名,如果有多个,采用,号隔开(4)在使用到该VIEW(VIEW32)的程序中用#include包含生成的*.h文件(5)在程序中可以象使用C语言的结构体一样使用该VIEW(VIEW32)BEA Tuxedo的开发1、通讯缓

30、冲区类型FML / FML32FML类型是Tuxedo自定义的类型,它的每个数据域均有自己的标志符、发生频次和长度指示器。FML(FML32)缓冲区类似于一个表,它一般用在与数据库有关的操作中,如把查询结果通过FML(FML32)缓冲区发送到客户端,它有自己的一套函数对其进行操作。FML(FML32)的使用类似于VIEW(VIEW32)。FML与FML32相类似,区别在于:(1)FML32中使用32位的数表示字段的ID和该字段的长度,FML中使用的是16位的数,所以FML32能表示更大的缓冲区(2)对FML32的操作函数都以32结尾,环境变量也以32结尾BEA Tuxedo的开发1、通讯缓冲区

31、类型XML 从开始,Tuxedo支持XML缓冲区,并可根据XML中某个ELEMENT(元素)的值、ELEMENT的类型或ATTRIBUTE(属性)的值实现数据依赖路由。同CARRAY一样,在对XML缓冲区进行操作时要指定缓冲区的长度。在中内置了XML PARSER,它主要完成以下工作:(1)自动检测XML缓冲区所采用的字符集(2)如果XML缓冲区所采用的字符集不是ASCII或EBCDIC字符集,把ELEMENT和ATTRIBUTE的名字转换为ASCII或EBCDIC(3)检查缓冲区中ELEMENT的内容和ATTRIBUTE的值(4)数据类型转换。在数据依赖路由中,如果是采用XML类型,要指定所

32、采用的路由字段的数据类型,XML只支持字符型的数据。如果路由字段是数字型的,将自动进行类型转换XML使用数据依赖路由需要在UBBCONFIG中ROUTING小节中指定BEA Tuxedo的开发2、Tuxedo的服务端编程服务程序的入口参数TPSVCINFO/* interface to service routines */struct tpsvcinfo #define XATMI_SERVICE_NAME_LENGTH 32 char nameXATMI_SERVICE_NAME_LENGTH;/* service name invoked */ long flags;/* describ

33、es service attributes */ char *data;/* pointer to data */ long len;/* request data length */ int cd;/* reserved for future use */ long appkey;/* application authentication client key */ CLIENTID cltid;/* client identifier for originating client */;typedef struct tpsvcinfo TPSVCINFO;char nameXATMI_SE

34、RVICE_NAME_LENGTH该Service的名字long flags;CLIENT端在tpcall、tpacall等的FLAGS中设置的值char *data;指向客户端发送过来的缓冲区的首地址long len;data缓冲区的长度int cd;当采用CONVERSATION通信方式时,对应的CD值。long appkey;当采用安全认证时,该客户端所对应的KEY。CLIENTID cltid;用于识别该客户端的ID。BEA Tuxedo的开发2、Tuxedo的服务端编程tpreturn服务程序返回结果 【函数原型】void tpreturn(int rval, long rcode,

35、 char *data, long len, long flags)【功能说明】tpreturn函数标志服务处理结束,并将返回信息发送给请求者。【参数说明】rval:TPSUCCESS服务处理成功; TPFAIL服务处理失败;rcode:通过该参数返回调用者一个应用自定义的值,客户端可以查询全局变量tpurcode访问rcode值;data:返回包数据指针;len:返回包长度;flags:未使用,置为0【返回值】无【使用例】:tpreturn( TPSUCCESS, 0, rqst-data, 0L, 0 );BEA Tuxedo的开发2、Tuxedo的服务端编程tpsvrinit-服务初始化

36、 【函数原型】int tpsvrinit(int agrc, char *argv)【功能说明】 在Server启动时,它将自动调用函数tpsvrinit(int argc, char *argv)。如果该Server所在的GROUP配置了连接数据库的接口,那么在默认情况下,该Service将自动调用TPOPEN(),建立与数据库的连接。【参数说明】int argc,char *argv参数的含义与main()函数的参数含义一样。【返回值】执行成功返回0,失败返回-1BEA Tuxedo的开发2、Tuxedo的服务端编程tpsvrdone-服务清理函数 【函数原型】int tpsvrdone(

37、)【功能说明】 在Server终止时,tpsvrdone做一些清除工作,如断开与数据库的连接、从系统的BB中清除与该Server对应的登记项。【参数说明】无【返回值】无BEA Tuxedo的开发3、Tuxedo的客户端Tuxedo有两种客户端:本地客户端和远程客户端Native Client(本地客户端):是指与Tuxedo服务器在同一台机器上,不用通过网络就可以访问到Tuxedo服务器的客户端。Workstation Client(远程客户端):是指要通过网络才可以访问到Tuxedo服务器的客户端。本地客户端与远程客户端的主要区别(1)本地客户端只能用C或COBAL语言编写,远程客户端可以用

38、几乎所有的编程语言编写(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与Tuxedo Server之间的通信通过WSH进行处理,与

39、WSL无关。(5)tpinit()或tpchkauth()调用返回 BEA Tuxedo的开发2、Tuxedo的客户端与远程客户端有关的配置(1)在MACHINES中配置MAXWSCLIENTS,即同时连接到该服务器上最多可以有多少个远程客户端(2)在SERVERS中要配置WSL Server WSL SRVGRP=GROUP1 SRVID=1000 CLOPT=-A - -n /128.64.196.14:13134 -m 2 -M 5 -x 6“ CLOPT中可带的参数为: -n netaddr:WSL的侦听端口,远程客户端通过该端口与服务器建立连接 -m minh:最少启动多少个WSH进

40、程 -M maxh:最多启动多少个WSH进程,默认值为MAXWSCLIENTS/x -x mpx_factor:每个WSH进程可以同时与多少个远程客户端建立连接 -c compression_threshold:如果在远程客户端与服务器之间传送的数据包大小(单位为字节)超过“-c”指定的参数,就自动进行数据压缩。 -T Client_timeout:指定一个远程客户端的空闲时间。单位为分钟,如果没有指定,WSH永远不会自动断开远程客户端的连接。 -t timeout_factor:指定远程客户端与WSH建立连接的时间。在指定时间内无法建立连接,那么连接将失败 -p minwshport -Pm

41、axwshport:指定WSH可以使用的端口范围BEA Tuxedo的开发2、Tuxedo的客户端在远程客户端的机器上要设置的环境变量TUXDIR:Tuxedo客户端的安装目录WSNADDR:远程客户端通过该IP地址与服务器建立连接,该变量必须。WSTYPE:客户端类型,该变量可选。客户端与服务端之间的通信方式(1)同步调用(2)异步调用(3)管道(4)会话方式(5)广播、通知(6)/Q队列(7)发布/订阅BEA Tuxedo的开发3、Tuxedo的客户端编程 为了与Tuxedo服务器端建立连接,Tuxedo Client要调用tpchkauth()检查该Tuxedo服务端所采用的安全方式,并

42、根据得到的值做相应的处理,然后调用tpinit()建立与Tuxedo的连接,在Tuxedo服务器端的结果返回之后,调用tpterm()断开与Tuxedo Server的连接。BEA Tuxedo的开发3、Tuxedo的客户端编程tpchkauth安全认证【函数原型】int tpchkauth()【功能说明】检查该Tuxedo Server所采用的安全方式【参数说明】无【返回值】TPNOAUTH:不需要认证TPSYSAUTH:需要口令认证TPAPPSUTH:需要口令认证,并且还需要应用级的认证或授权1:调用失败,错误号保证在全局变量tperrno中 BEA Tuxedo的开发3、Tuxedo的客

43、户端编程tpinit建立连接 【函数原型】int tpinit()【功能说明】与Tuxedo服务器端建立连接【参数说明】无【返回值】1:调用失败,错误号保证在全局变量tperrno中BEA Tuxedo的开发3、Tuxedo的客户端编程tpterm断开连接 【函数原型】int tpterm()【功能说明】与Tuxedo服务器端断开连接【参数说明】无【返回值】1:调用失败,错误号保证在全局变量tperrno中 BEA Tuxedo的开发4、BEA Tuxedo通信方式(1)同步调用(2)异步调用(3)管道(4)会话方式(5)广播、通知(6)/Q队列(7)发布/订阅BEA Tuxedo的开发4、B

44、EA Tuxedo通信方式(1)同步调用tpcallCSBEA Tuxedo的开发tpcall同步调用 【函数原型】int tpcall(char *svc, char *idata, long ilen, char *odata, long *olen, long flags)【功能说明】客户端同步调用服务端名为svc的Service【参数说明】*svc:Service的名称char *idata:输入缓冲区的地址,客户端传给服务端的参数放在该缓冲区内long ilen:输入缓冲区的长度char *odata:输出缓冲区的地址,服务端传给客户端的结果放在该缓冲区内long *olen:输出缓

45、冲区的长度long flags:调用标志,有以下几个: TPNOTRANTPNOCHANGE TPNOBLOCKTPNOTIME TPSIGRSTRT【返回值】0:调用成功,1:调用失败,错误号保证在全局变量tperrno中 BEA Tuxedo的开发4、BEA Tuxedo通信方式(1)同步调用BEA Tuxedo的开发4、BEA Tuxedo通信方式(2)异步调用tpacall( )tpgetrply( )tpcancel()CSSC1C2SBEA Tuxedo的开发tpacall异步调用 【函数原型】int tpacall(char *svc, char *data, long len,

46、 long flags)【功能说明】 客户端异步调用服务端名为svc的Service,不等服务端返回结果,程序即可继续往下走,在某个地方可调用tpgetrply()取得服务端的返回【参数说明】*svc:Service的名称char *data:输入缓冲区的地址,客户端传给服务端的参数放在该缓冲区内long len:输入缓冲区的长度long flags:调用标志,有以下几个:TPNOREPLY:设置了该参数,则服务端不会给该客户端发送应答TPNOTRANTPNOBLOCKTPNOTIMETPSIGRSTRT【返回值】1:调用失败,成功返回一个Handler,可做为tpgetrply的参数,用于获

47、取服务端的返回结果 BEA Tuxedo的开发tpgetrply获取应答步调用 【函数原型】int tpgetrply(int *cd, char *data, long *len, long flags)【功能说明】取出服务端对tpacall()的应答【参数说明】*cd:tpacall()返回的Handlerchar *data:返回缓冲区的地址,客户端传给服务端的参数放在该缓冲区内long *len:返回缓冲区的长度long flags:调用标志,有以下几:TPGETANYTPNOCHANGETPNOBLOCKTPNOTIMETPSIGRSTRT【返回值】1:调用失败,错误号保证在全局变量

48、tperrno中 BEA Tuxedo的开发tpcancel取消服务端调用 【函数原型】int tpcancel(int cd)【功能说明】 如果当前的程序不处于事务模式中,取消对tpacall()的应答。如果处于事务模式中,则不能取消对tpacall()的应答,该调用会失败【参数说明】cd:tpacall()返回的Handler【返回值】1:调用失败,错误号保证在全局变量tperrno中BEA Tuxedo的开发4、BEA Tuxedo通信方式(2)异步调用BEA Tuxedo的开发4、BEA Tuxedo通信方式(3)管道tpforward( )CS1S3S2BEA Tuxedo的开发tp

49、forward管道通讯【函数原型】void tpforward(char *service, char *data, long len, long flags)【功能说明】 服务进程在处理客户请求时,不把结果返回给客户进程,而是把处理过的结果进一步转发给后续的其他服务进程,由其他服务进程接着处理,自己继续完成另外的服务请求。被转发的服务请求的结果由后续服务进程直接返回给客户进程。【参数说明】service: 要调用的Service的名字data: 传送给该Service的输入缓冲区len: data缓冲区的长度flags: 未使用,置为0【返回值】无 BEA Tuxedo的开发4、BEA Tu

50、xedo通信方式(3)管道BEA Tuxedo的开发CS4、BEA Tuxedo通信方式(4)会话方式 采用会话通信方式,通信双方在建立连接之后,可以多次发送或接收数据。Tuxedo中采用的是半双工的通信方式,这种方式特别适用于大批量数据传输。发起者(originator,initiator):发起该会话的进程,她调用tpconnect()与服务器端的一个service建立连接从属者(subordinate):tpconnect()中指定的service发送者(sender):当前拥有发送权的进程,它只能发送数据接收者(receiver):当前拥有发送权的进程,它只能接收数据tpconnect

51、( ), tpsend( ), tprecv(),tpdisconnect()BEA Tuxedo的开发4、BEA Tuxedo通信方式(5)广播、通知 由服务进程向客户进程以单个(tpnotify)或批量(tpbroadcast)方式发出的未经客户请求的广播或通知信息,客户可在适当的时候检查(tpchkunsol)是否收到通知消息并定义(tpsetunsol)收到消息后所采取的动作。两种使用方式:(1)一对一(点对点):一个服务器端进程或客户端进程给某个客户端进程发消息(2)一对多(广播):一个服务器端进程或客户端进程给符合某个条件的一组客户端发消息消息的通知方式有3种:(1)IGNORE:

52、该Tuxedo应用系统中的客户端不接收任何消息(2)SIGNAL:用SIGUSR1、SIGUSR2信号通知客户端有消息到来(3)DIPIN:当客户端调用ATMI函数时,顺便查看是否有消息,如果有则调用消息出来函数进行处理。消息的通知方式在UBBCONFIG文件的RESOURCES中设置,默认为DIPINBEA Tuxedo的开发4、BEA Tuxedo通信方式(5)广播、通知BEA Tuxedo的开发PPQ4、BEA Tuxedo通信方式(6)/Q队列 /Q部件是Tuxedo系统的一个重要组成部分,它提供了一个可靠队列机制,允许消息按照某种排队规则存储到磁盘上或内存中,然后再转发给其他处理进程

53、。这种存储转发机制可以保证在两个通信实体之间传递的消息不丢失、不重传,从而保证交易的完整性BEA Tuxedo的开发4、BEA Tuxedo通信方式(7)发布/订阅 客户端与服务器之间还可以通过发布/订阅来进行通信,对某一事件()或某一类事件感兴趣的客户端或服务端可以订阅该事件。当该事件发生时,已订阅了该事件的进程就可以收到该事件,在程序中可对这些事件进行处理。Tuxedo的事件分为系统事件和用户自定义事件:系统事件:是由Tuxedo系统内定义的。如系统重启或关闭等,都会产生一个系统事件用户自定义事件:是由应用自己定义的事件。当某种条件满足时,调用tppost()产生该事件tppost( )t

54、psubscribe( )BEA Tuxedo配置信息UBBCONFIG一个BEA TUXEDO应用包含四个基本组成部分: 一个用来描述应用的配置文件 执行服务请求的服务器(Server) 发起请求的客户端(Client) 构造和运行应用的命令 UBBCONFIG文件是配置文件的文本形式,可以使用任何一个文本编辑器创建和修改。你必须为每个新应用创建一个UBBCONFIG文件。TUXCONFIG 文件是配置文件的二进制形式BEA Tuxedo配置信息UBBCONFIG1、RESOURCES:设置域范围参数(必须) RESOURCES小节是一个必须存在的小节,并且必须是配置文件中的第一个小节。本节

55、包括如下信息:共享内存的地址(IPCKEY)启动和关闭服务程序的管理点(MASTER)访问应用的用户控制(UID、GID和PERM)本应用的安全级别(SECURITY、AUTHSVC)应用中各进程的IPC限制,服务器进程的数量,以及提供的服务数(MAXACCESSERS、MAXSERVERS、MAXSERVICES)应用结构(MODEL),表明是单机器应用还是多机器应用是否使用服务器负载均衡(LDBAL)缓冲区类型和子类型的最大数目(MAXBUFTYPE、MAXBUFSTYPE)公告牌健全扫描(sanity scans)的时间间隔(SCANUNIT、SANITYSCAN)服务请求的超时值(BL

56、OCKTIME)并发会话最大数目(MAXCONV)主动通知方法(NOTIFY、USIGNAL) BEA Tuxedo配置信息UBBCONFIG2、MACHINES:配置机器(必须) 应用中的每个机器必须在配置文件的MACHINES小节中有一个入口项,并且该小节必须是配置文件的第二个小节。MACHINES小节中包含应用中每个机器的如下信息: 机器地址到逻辑标识(LMID)的映射 配置文件的位置(TUXCONFIG) BEA TUXEDO软件的安装位置(TUXDIR) 应用服务器的位置(APPDIR) 应用日志文件的位置(ULOGPFX) 环境文件的位置(ENVFILE)MACHINES小节中必需

57、的几个参数是LMID、TUXCONFIG、TUXDIR和APPDIRBEA Tuxedo配置信息UBBCONFIG3、GROUPS:配置组信息(必须) 通过GROUPS小节可以指定从逻辑上分组的服务器集,这些服务器组以后可被用来访问资源管理器(resource managers),并且便于服务器组迁移。配置文件的GROUPS小节包含对服务器组的定义。你必须为有应用服务器运行其上的机器定义至少一个服务器组。 对于无事务、非分布式系统,组非常简单,只需定义组名到组号的基本映射及各组的逻辑机器即可。此外还有更多灵活选项以支持分布式的带事务的系统。组名是GROUPS小节入口项的基础,它是一个字母数字混

58、合名称,通过它来识别一个组。一个组必须有一个唯一的组号(GRPNO),并且必须位于一个逻辑机器(LMID)上,LMID也是必须的。BEA Tuxedo配置信息UBBCONFIG4、SERVERS:配置服务器(可选) 配置文件的SERVERS小节包含某个服务器进程的信息。虽然本小节并非必需,但是一个配置文件中没有本小节的应用将没有应用服务器,因此将没有实际功能。本小节的每个入口项代表一个要在应用中被启动的服务器进程,包含如下信息: 一个服务器名称、组别以及数字标识(SRVGRP、SRVID) 命令行选项(CLOPT) 执行服务器启动顺序和启动个数的参数(SEQUENCE、MIN、MAX) 一个服

59、务器专用的环境文件(ENVFILE) 与服务器队列有关的信息(RQADDR、RQPERM、REPLYQ、RPPERM) 重启动信息(RESTART、RCMD、MAXGEN、GRACE) 服务器被指定为一个会话服务器(CONV) 重载系统范围的共享内存访问设置(SYSTEM_ACCESS)BEA Tuxedo配置信息UBBCONFIG5、SERVICES:配置服务(可选) 通过配置文件中的SERVICES小节可以指定BEA TUXEDO服务的信息。这些信息对于无事务、非分布式应用相对简单。SERVICES小节包含下面一些信息: 负载均衡信息(SRVGRP) 给服务赋予优先级 为不同的服务器组指定

60、不同的服务参数 缓冲区类型检查信息(BUFTYPE)BEA Tuxedo配置信息UBBCONFIG6、ROUTING:配置路由(可选) UBBCONFIG文件的ROUTING小节允许对在SERVICES小节中命名的路由标准(routing criteria)进行全面的定义(针对BEA TUXEDO数据依赖性路由)。BEA Tuxedo配置信息UBBCONFIG7、NETGROUPS/NETWORK:配置网络信息 UBBCONFIG文件的NETGROUPS小节描述在在局域网环境下应用可用的网络组。对于网络组的个数没有限制,每个网络组可能被分配一对机器。一个网络组不同网络成员之间采用的通讯方法由优

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论