版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、.,1,目录,中间件概述 Tuxedo概述 Tuxedo基本概念 BEA Tuxedo的功能 BEA Tuxedo的环境变量 BEA Tuxedo管理进程 BEA Tuxedo常用命令使用方法 BEA Tuxedo的开发 BEA Tuxedo配置信息UBBCONFIG BEA Tuxedo与XA规范 BEA Tuxedo超时处理 BEA Tuxedo负载均衡 BEA Tuxedo 与 Weblogic之间的调用 IBM MQSeries简单介绍,.,2,中间件概述,二层结构与三层结构,.,3,中间件概述,中间件的定义 中间件是一种独立的系统软件或服务程序,分布式应用软件借助这种软件在不同的技术
2、之间共享资源,中间件位于客户机服务器的操作系统之上,管理计算资源和网络通讯。 实现应用之间的互连和互操作 不同的应用对中间件有不同的要求 中间件是在中间 处于应用软件和系统软件之间的一类软件,而非一种软件 或独立于硬件或数据库厂商(处于其产品的中间,实现其互连)的一类软件 或者是客户方与服务方之间的连接件 或者是需要进行二次开发的中间产品 中间件=平台通信 人们在使用中间件时,往往是一组中间件集成在一起,构成一个平台(包括开发平台和运行平台),但在这组中间件中必需要有一个通信中间件 这个定义也限定了只有用于分布式系统中才能称为中间件,同时还可以把它与支撑软件和实用软件区分开来 中间件和平台可能
3、会互相转化和互相渗透,.,4,中间件概述,中间件的作用 1、中间件屏蔽了底层操作系统的复杂性。 2、减少了系统的维护、运行和管理的工作量。 3、可以无缝地集成不同时期、不同操作系统上开发的应用软件,.,5,中间件概述,中间件的分类 1、消息中间件 将数据从一个应用程序发送到另一个应用程序,这就是消息中间件的主要功能。它要负责建立网络通信的通道,进行数据的可靠传送,保证数据不重发,不丢失。消息中间件的一个重要作用是可以实现跨平台的操作,为不同操作系统上的应用软件集成提供数据传送服务。主要代表是IBM MQSeries等 2、交易中间件 交易中间件也和消息中间件一样具有跨平台、跨网络的能力,但它的
4、主要功能是管理分布于不同计算机上的数据的一致性,协调数据库处理分布式事务,保障整个系统的性能和可靠性。交易中间件适用于联机交易处理系统。主要代表是BEA Tuxedo等。 3、对象中间件 对象中间件也具有交易中间件的功能,它是按面向对象的模式来组织体系结构,通过对象请求代理来实现交易处理。对象请求代理体系结构主要有3种:CORBA、EJB和COM+。 4、应用服务器 基于WEB应用,是企业实施电子商务的基础平台。它一般是J2EE体系结构的。 5、企业应用集成 EAI可用于大型企业内部众多的应用系统进行有效的整合,是他们之间能够互相访问,实现互操作。 6、安全中间件,.,6,Tuxedo概述,B
5、EA Tuxedo支持70多个不同的硬件/操作系统平台,其中包括几乎所有的UNIX,Windows NT, OS/400, VMS, OS/2, Windows95 等等。 BEA Tuxedo支持几乎所有的关系数据库,并能通过XA协议和 Oracle、Informix、Sybase等流行数据库接口以保证交易的一致性。支持所有流行的开发工具。 交易中间件的标准是由X/OPEN组织和ISO组织来制订的。BEA TUXEDO遵循 所有关键的应用接口标准和事务处理协议,如分布式 事务处理模型DTP,事务定界标准TX,应用程序事务处理接口标准XATMI,以及和资源管理器 (数据库)的接口标准XA,国际
6、化标准 XPG,中间件的互操作协议OSI-TP, 网络协议支持TCP/IP、简单 网络管理协议SNMP等。 事实上,BEA TUXEDO不仅遵循标准,而且目前的标准,如XA, XATMI等大部分是基于BEA TUXEDO技术来制订的。在BEA TUXEDO的30多个支持应用 开发的函数调用中已有30个被Open Group组织接纳为X/open的标准API,同时,BEA是COBRA组织的核心会员,直接影响着面向对象技术的标准和发展方向。 作为全球专业从事中间件技术的唯一的大型计算机厂商,BEA TUXEDO对所有开放系统(包括硬件、操作系统和数据库等)提供平等的支持,不对某一种系统存在特别的“
7、偏爱”,在所有系统平台上有着功能和性能上的一致表现,这也是其他中间件厂商很难真正做到的。另外,从遵循标准到制定标准,这也说明了BEA TUXEDO在开放系统平台上事实上的领导地位。,.,7,Tuxedo基本概念,Tuxedo应用系统 一个Tuxedo应用系统是由在一个TUXCONFIG文件中定义的资源及其客户端的总称,一个Tuxedo应用系统能够通过域网关与别的Tuxedo应用系统或其他的应用中间件系统实现互操作 域(DOMAIN) 域是具有相同功能或结构的应用系统的集合。应用系统可以有多台服务器组成。Tuxedo的域特性把客户/服务器模型扩展到多个独立自治的应用系统。一个域既可以是一组Tux
8、edo的应用程序,也可以是一组运行在另一个非Tuxedo环境中的应用程序。 Tuxedo的每个域独立完成域内的操作,域间操作由域网关完成。,.,8,BEA Tuxedo的功能,Tuxedo具备了所有交易中间件产品所应具备的功能,作为构造三层结构应用系统的基础平台,Tuxedo的主要功能可概括为五大平台: 1、应用开发平台: 提供API,供开发人员调用,用于开发整个应用系统;支持多种客户端开发工具和操作系统。 2、应用部署平台: 通过配置文件,对应用系统进行部署,实现开发与部署分开; 3、应用运行平台: 提供应用系统运行的环境;在运行时可根据系统的配置提供故障恢复、负载均衡、自动伸缩、安全认证和
9、数据加密等功能,为Tuxedo应用系统提供一个可靠的运行环境。 4、应用管理平台: 对整个应用系统进行管理和监控。 5、应用互联平台: Tuxedo是一个高度开放的系统,能够很容易和其他应用系统互联,实现互操作。,.,9,BEA Tuxedo的环境变量,1、TUXDIR 定义了TUXEDO的安装目录,如: TUXDIR=/home/tuxedo/tuxedo812、TUXCONFIG 定义了TUXEDO配置文件的路径,如: TUXCONFIG=/home/ecif/zhangshaowei/etc/tuxedo.cfg 3、BDMCONFIG Tuxedo跨域访问配置文件的路径,编译之后生成的
10、二进制配置文件bdmconfig,如: TUXCONFIG=/home/ecif/zhangshaowei/etc/bdmconfig.cfg 4、WSNADDR 定义了服务器提供监听tuxedo应用请求的地址,一般是 server ip:port,如: WSNADDR=/128.64.96.14:13134 该变量定义的IP和端口应该与配置文件中WSL进程定义的一致,TUXEDO服务才能接收到客户端的请求 5、NLSPATH:消息目录的全路径 6、LANG 7、LD_LIBRARY_PATH(SLIB_PATH),.,10,BEA Tuxedo管理进程_1,1、BBL(Bulletin Bo
11、ard Liaison),主要对公告板等进行管理,包含了一个公告牌的本地拷贝和本地服务器上应用的状态。 Bulletin Board(BB,公告板):Tuxedo把系统的配置信息保存在一个共享内存中,该共享内存称为公告板。 2、DBBL(Distinguished Bulletin Board Liaison),TUXEDO用于多服务器配置各个服务器之间的协调工作,只有当TUXEDO配置为MP方式时才需要用到DBBL。DBBL与BBL协同,保证所有的公告牌内容的一致性。 3、WSL:WorkStation Listener,Tuxedo系统自带的一个Server,它侦听一个指定的端口,WSC最
12、初与该Server建立连接。 4、WSH:WorkStation Handler Server ,Tuxedo系统自带的一个Server,由它处理WSC与Tuxedo Server之间的通信。 5、BRIDGE,不同的服务器之间通过BRIDGE进程进行通讯,该BRIDGE的侦听IP地址及端口 在NADDR中指定。如果是在UNIX下要指定该BRIDGE所用的网络设备,如果是在NT下则不要。,.,11,BEA Tuxedo管理进程_2,6、DMADM,域间通信的进程:管理域的server,在运行时管理BDMCONFIG,对已登记的gateway group提供支持,在tuxedo系统中,只能有一个
13、DMADM进程,且不能对它采用MSSQ,不能有REPLYQ 7、GWADM,管理DOMAIN的域网关进程(在/DOMAIN中是GWTDOMAIN)的SERVER,在运行时可以对某一组域网关(Domain Gateway Group)进行管理。主要从DMADM那里取得域的配置信息,并对域网管进程及跨越域的全局事务的LOG文件进行管理 8、GWTDOMAIN,处理DOMAIN之间的互操作,使本地域和调用远程域可以互相调用彼此的service,其中GMADM和GWTDOMAIN必须在一个组中,一个tuxedo应用 可以有多个GWADM,GWTDOMAIN对,一个组只能有一个GMADM,GWTDOMA
14、IN对,但一个tuxedo应用只能有一个DMADM, DMADM可以在如何一个组中,一个本地域可以和多个远程域实现互操作。 9、tlisten,是TUXEDO自带的管理程序,在MP模式下,完成主机之间的初始化通讯,如非MASTER机从MASTER机中下载tuxconfig配置文件。 tlisten的启动办法:tlisten l /NLSADDR,.,12,BEA Tuxedo常用命令使用方法,tmloadcf编译TUXEDO UBB信息 tmunloadcf将TUXCONFIG转换成ASCII格式 tmboot启动TUXEDO系统服务 tmshutdown关闭所有或部分应用并释放IPC资源 t
15、madminTUXEDO系统管理 buildclient编译客户端程序 buildserver编译服务端程序,.,13,BEA Tuxedo常用命令使用方法,tmloadcf编译TUXEDO UBB信息 Usage:tmloadcf -ycnb ubb文件命令说明:-c 计算运行应用需要的IPC资源,该信息将提供给管理员,用于在各机器上配置资源。-n 进行语法检查并不生成TUXCONFIG。-b 控制TUXCONFIG占用的物理页数。-y 无条件覆盖TUXCONFIG环境变量TUXCONFIG必须设定指向二进制TUXCONFIG文件。在安全要求高的应用中,tmloadcf不能从标准输入接受,环
16、境变量APP_PW必须包含应用密码。 tmunloadcf将TUXCONFIG转换成ASCII格式 Usage:tmunloadcf tmunloadcf将TUXCONFIG转换成ASCII格式用于检查。该工具读取环境变量TUXCONFIG指向的文件。输出包含所有的参数,包括TUXEDO设定的缺省值,是UBBCONFIG文件的一个超集。,.,14,BEA Tuxedo常用命令使用方法,tmboot启动TUXEDO系统服务 Usage: tmboot -w(ait) -n(oexec) -q(uiet) -y -c(heck) -d1 -A | -B loc | -M -S | -l lmid
17、| -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 启动所有机器上的管理进程。 -M 启动主控机器上的管理进程。 -i srvid 启动服务id等于 srvid的进程。 -g grpname 启动指定的一
18、组服务(含TMS) -S启动所有应用服务。 -s server-name 启动可执行文件名为server-name的服务。 -l lmid 启动TMS和指定机器上的应用服务。 -T grpname 启动指定组中所有TMS。 -B lmid 启动指定机器上的BBL。 -e command 指定启动进程失败后在主控机器上运行的命令名。 -c 打印本配置所需最少的IPC资源。,.,15,BEA Tuxedo常用命令使用方法,tmshutdown关闭所有或部分应用并释放IPC资源 Usage: tmshutdown -wdelay|-k TERM|KILL -n(oexec) -q(uiet) -y
19、-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则可以超越此规则。该参数仅用于管理员需要立即关机而又无法及时通知客户端时。 参数-w dela
20、y 在delay秒后进行强制关闭。指定的服务当即被挂起,使之不能继续接受交易请求。delay的值则允许服务在一个合理的时间内完成已经接受的请求。在延迟的时间到达后,信号SIGKILL(或SIGTERM)将发给指定的服务。该参数目的是使管理员能够关闭发生死循环或死锁的服务。 -A 在所有机器上启动/关闭管理的Server进程 -M 只在MASTER机器上启动/关闭管理的Server进程 -i srvid 启动/关闭某个server id指定的Server进程 -g grpname 启动/关闭某个server group名字指定的Server Group -S 启动/关闭所有应用服务器(LMID)
21、 -s server-name 启动/关闭某个server名字指定的Server进程 -l lmid option 在指定的机器上启动/关闭所有TMS进程和应用服务器(LMID) -T grpname 启动/关闭指定的server group中所有的TMS进程 -B lmid 在指定的机器上启动/关闭BBL进程 -e command 指定一个程序可以当在MASTER机器上启动任何一个进程失败时执行,.,16,BEA Tuxedo常用命令使用方法,tmadminTUXEDO系统管理 Printserver(psr)服务信息 1. 服务的可执行文件名 2. 服务连接的队列名 3. 组名 4. 服务
22、的数字id 5. 服务已经处理的请求数 6. 服务处理的全部请求的参数和 7. 服务正在处理的交易,若为IDLE则服务当前是空闲 Printservice(psc)交易信息 1. 交易名 2. 交易函数名 3. 服务可执行文件名 4. 服务所在组名 5. 服务的数字id 6. 提供交易的机器的LMID 7. 交易已经执行的次数 8. 交易当前状态,.,17,BEA Tuxedo常用命令使用方法,tmadminTUXEDO系统管理 Printqueue(pq)队列信息 1. 队列连接的服务的可执行文件名 2. 字符队列名,是RQADDR参数或一个随机值 3. 连接的服务数 4. 当前队列的所有请
23、求的参数和 5. 实际请求数 6. 平均队列长度 7. 队列所在机器的LMID Printclient(pclt)客户端信息 1. 已经登录的客户端机器的LMID 2. 用户名,由tpinit()提供的 3. 客户端名,由tpinit()提供的 4. 客户端连接后经过的时间 5. 客户端状态 6. IDLE表示客户端目前没有任何交易在工作 7. IDLET表示客户端启动了一个交易 8. BUSY表示客户端在工作中 9. BUSYT表示客户端正在交易控制下工作 10. 启动/提交/中断的交易数,.,18,BEA Tuxedo常用命令使用方法,buildclient编译客户端程序 Usage:bu
24、ildclient -v 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方式编译,.,19,BE
25、A Tuxedo常用命令使用方法,buildserver编译服务端程序 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模式。如无此项,两种模式都包括;使用此项可以
26、使生成的可执行文件小一点 -r 连接此处指出的RM库。该RM的名字必须含在$TUXDIR/udataobj/RM文件中。,.,20,BEA Tuxedo的开发,1、通讯缓冲区类型 2、Tuxedo的服务端编程 3、Tuxedo的客户端编程 4、BEA Tuxedo通信方式 5、BEA Tuxedo分布式事务的处理,.,21,BEA Tuxedo的开发,1、通讯缓冲区类型 Tuxedo的客户端与服务端之间的数据传送是通过数据库缓冲区来进行的。Tuxedo的数据缓冲区主要包括STRING、CARRAY、VIEW/VIEW32和FML/FML32。从Tuxedo7.1开始,还增加了XML数据缓冲区。
27、 在Tuxedo中客户端与服务端之间进行数据交换的缓冲区,都要用Tuxedo自己提供的API进行操作,不能采用C函数(malloc、free)。在用tpalloc()分配一块缓冲区之后,在不再需要该缓冲区时用tpfree()释放掉。 STRING STRING类型用于数据是字符数组,且以空字符结束。如果两台机器之间的编码不一样(如一台是ASCII,另一台是EBCDIC),Tuxedo将自动进行编码/解码工作。STRING一般用于在客户端与服务器之间传送文本数据。 【使用方法】: 用C语言的字符串处理方式进行处理。 【使用例】: 客户端: if ( ( sendbuf = tpalloc( ST
28、RING, NULL, sendlen ) ) = NULL ) fprintf( stderr, Error allocating send buffern ); tpterm( ); exit( 1 ); ,.,22,BEA Tuxedo的开发,1、通讯缓冲区类型 CARRAY CARRAY类型用于处理二进制数据,其中可以包含空字符,因此在使用该类型进行传输时必须指定长度。如果两台机器之间的编码不一样,Tuxedo不进行编码/解码工作。如果在客户端与服务器之间传送二进制的文件,就要采用CARRAY类型的缓冲区。 【使用方法】: 用二进制数据处理方式进行处理。 【使用例】: 客户端: if
29、( ( sendbuf = tpalloc( CARRAY, NULL, sendlen ) ) = NULL ) fprintf( stderr, Error allocating send buffern ); tpterm( ); exit( 1 ); ,.,23,BEA Tuxedo的开发,1、通讯缓冲区类型 VIEW / VIEW32 VIEW类型是应用程序定义的C结构,必须有一个VIEW描述文件来说明该结构。VIEW类型必须有子类型,用来说明每个结构成员的类型。 VIEW32类型与VIEW相似,只是允许更大的字符域、更多的域,以及更全面的类型。 使用VIEW/VIEW32类型需指定
30、以下环境变量: 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(VIE
31、WFILES32)为*.V文件名,如果有多个,采用,号隔开 (4)在使用到该VIEW(VIEW32)的程序中用#include包含生成的*.h文件 (5)在程序中可以象使用C语言的结构体一样使用该VIEW(VIEW32),.,24,BEA Tuxedo的开发,1、通讯缓冲区类型 FML / FML32 FML类型是Tuxedo自定义的类型,它的每个数据域均有自己的标志符、发生频次和 长度指示器。 FML(FML32)缓冲区类似于一个表,它一般用在与数据库有关的操作中,如把查 询结果通过FML(FML32)缓冲区发送到客户端,它有自己的一套函数对其进行操 作。 FML(FML32)的使用类似于V
32、IEW(VIEW32)。 FML与FML32相类似,区别在于: (1)FML32中使用32位的数表示字段的ID和该字段的长度,FML中使用的是16位的数,所以FML32能表示更大的缓冲区(2)对FML32的操作函数都以32结尾,环境变量也以32结尾,.,25,BEA Tuxedo的开发,1、通讯缓冲区类型 XML 从Tuxedo7.1开始,Tuxedo支持XML缓冲区,并可根据XML中某个ELEMENT(元素)的值、ELEMENT的类型或ATTRIBUTE(属性)的值实现数据依赖路由。同CARRAY一样,在对XML缓冲区进行操作时要指定缓冲区的长度。 在Tuxedo7.1中内置了XML PAR
33、SER,它主要完成以下工作: (1)自动检测XML缓冲区所采用的字符集 (2)如果XML缓冲区所采用的字符集不是ASCII或EBCDIC字符集,把ELEMENT和 ATTRIBUTE的名字转换为ASCII或EBCDIC (3)检查缓冲区中ELEMENT的内容和ATTRIBUTE的值 (4)数据类型转换。在数据依赖路由中,如果是采用XML类型,要指定所采用的路由字段的数据类型,XML只支持字符型的数据。如果路由字段是数字型的,将自动进行类型转换 XML使用数据依赖路由需要在UBBCONFIG中ROUTING小节中指定,.,26,BEA Tuxedo的开发,2、Tuxedo的服务端编程 服务程序的
34、入口参数TPSVCINFO /* interface to service routines */ struct tpsvcinfo #define XATMI_SERVICE_NAME_LENGTH 32 char nameXATMI_SERVICE_NAME_LENGTH;/* service name invoked */ long flags;/* describes service attributes */ char *data;/* pointer to data */ long len;/* request data length */ int cd;/* reserved f
35、or future use */ long appkey;/* application authentication client key */ CLIENTID cltid;/* client identifier for originating client */ ; typedef struct tpsvcinfo TPSVCINFO; char nameXATMI_SERVICE_NAME_LENGTH该Service的名字 long flags;CLIENT端在tpcall、tpacall等的FLAGS中设置的值 char *data;指向客户端发送过来的缓冲区的首地址 long l
36、en;data缓冲区的长度 int cd;当采用CONVERSATION通信方式时,对应的CD值。 long appkey;当采用安全认证时,该客户端所对应的KEY。 CLIENTID cltid;用于识别该客户端的ID。,.,27,BEA Tuxedo的开发,2、Tuxedo的服务端编程 tpreturn服务程序返回结果 【函数原型】 void tpreturn(int rval, long rcode, char *data, long len, long flags) 【功能说明】 tpreturn函数标志服务处理结束,并将返回信息发送给请求者。 【参数说明】 rval:TPSUCCES
37、S服务处理成功; TPFAIL服务处理失败; rcode:通过该参数返回调用者一个应用自定义的值,客户端可以查询全局变量tpurcode访问rcode值; data:返回包数据指针; len:返回包长度; flags:未使用,置为0 【返回值】 无 【使用例】: tpreturn( TPSUCCESS, 0, rqst-data, 0L, 0 );,.,28,BEA Tuxedo的开发,2、Tuxedo的服务端编程 tpsvrinit-服务初始化 【函数原型】 int tpsvrinit(int agrc, char *argv) 【功能说明】 在Server启动时,它将自动调用函数tpsvr
38、init(int argc, char *argv)。 如果该Server所在的GROUP配置了连接数据库的接口,那么在默认情况下,该 Service将自动调用TPOPEN(),建立与数据库的连接。 【参数说明】 int argc,char *argv参数的含义与main()函数的参数含义一样。 【返回值】 执行成功返回0,失败返回-1,.,29,BEA Tuxedo的开发,2、Tuxedo的服务端编程 tpsvrdone-服务清理函数 【函数原型】int tpsvrdone() 【功能说明】 在Server终止时,tpsvrdone做一些清除工作,如断开与数据库的连接、从系统的BB中清除与该
39、Server对应的登记项。 【参数说明】 无 【返回值】 无,.,30,BEA Tuxedo的开发,3、Tuxedo的客户端 Tuxedo有两种客户端:本地客户端和远程客户端 Native Client(本地客户端):是指与Tuxedo服务器在同一台机器上,不用通过网络就可以访问到Tuxedo服务器的客户端。 Workstation Client(远程客户端):是指要通过网络才可以访问到Tuxedo服务器的客户端。 本地客户端与远程客户端的主要区别(1)本地客户端只能用C或COBAL语言编写,远程客户端可以用几乎所有的编程语言编写(2)在远程客户端所在的机器上要安装Tuxedo的客户端软件,并
40、且要设置相应的环境变量。在本地客户端上则不用。(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进行处理,与WSL无关。(5)tpinit()或tpchkauth()调用返回,.,31,BEA
41、 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进程 -M maxh:最多启动多少个WSH进程,默认值为MAXWSCLI
42、ENTS/x -x mpx_factor:每个WSH进程可以同时与多少个远程客户端建立连接 -c compression_threshold:如果在远程客户端与服务器之间传送的数据包大小(单位为字节)超过“-c”指定的参数,就自动进行数据压缩。 -T Client_timeout:指定一个远程客户端的空闲时间。单位为分钟,如果没有指定,WSH永远不会自动断开远程客户端的连接。 -t timeout_factor:指定远程客户端与WSH建立连接的时间。在指定时间内无法建立连接,那么连接将失败 -p minwshport -Pmaxwshport:指定WSH可以使用的端口范围,.,32,BEA T
43、uxedo的开发,2、Tuxedo的客户端 在远程客户端的机器上要设置的环境变量TUXDIR:Tuxedo客户端的安装目录WSNADDR:远程客户端通过该IP地址与服务器建立连接,该变量必须。WSTYPE:客户端类型,该变量可选。 客户端与服务端之间的通信方式 (1)同步调用 (2)异步调用 (3)管道 (4)会话方式 (5)广播、通知 (6)/Q队列 (7)发布/订阅,.,33,BEA Tuxedo的开发,3、Tuxedo的客户端编程 为了与Tuxedo服务器端建立连接,Tuxedo Client要调用tpchkauth()检查该Tuxedo服务端所采用的安全方式,并根据得到的值做相应的处理
44、,然后调用tpinit()建立与Tuxedo的连接,在Tuxedo服务器端的结果返回之后,调用tpterm()断开与Tuxedo Server的连接。,.,34,BEA Tuxedo的开发,3、Tuxedo的客户端编程 tpchkauth安全认证 【函数原型】 int tpchkauth() 【功能说明】 检查该Tuxedo Server所采用的安全方式 【参数说明】 无 【返回值】 TPNOAUTH:不需要认证 TPSYSAUTH:需要口令认证 TPAPPSUTH:需要口令认证,并且还需要应用级的认证或授权 1:调用失败,错误号保证在全局变量tperrno中,.,35,BEA Tuxedo的
45、开发,3、Tuxedo的客户端编程 tpinit建立连接 【函数原型】 int tpinit() 【功能说明】 与Tuxedo服务器端建立连接 【参数说明】 无 【返回值】 1:调用失败,错误号保证在全局变量tperrno中,.,36,BEA Tuxedo的开发,3、Tuxedo的客户端编程 tpterm断开连接 【函数原型】 int tpterm() 【功能说明】 与Tuxedo服务器端断开连接 【参数说明】 无 【返回值】 1:调用失败,错误号保证在全局变量tperrno中,.,37,BEA Tuxedo的开发,4、BEA Tuxedo通信方式 (1)同步调用 (2)异步调用 (3)管道
46、(4)会话方式 (5)广播、通知 (6)/Q队列 (7)发布/订阅,.,38,BEA Tuxedo的开发,4、BEA Tuxedo通信方式 (1)同步调用 tpcall,C,S,.,39,BEA Tuxedo的开发,tpcall同步调用 【函数原型】 int tpcall(char *svc, char *idata, long ilen, char *odata, long *olen, long flags) 【功能说明】 客户端同步调用服务端名为svc的Service 【参数说明】 *svc:Service的名称 char *idata:输入缓冲区的地址,客户端传给服务端的参数放在该缓冲
47、区内 long ilen:输入缓冲区的长度 char *odata:输出缓冲区的地址,服务端传给客户端的结果放在该缓冲区内 long *olen:输出缓冲区的长度 long flags:调用标志,有以下几个: TPNOTRANTPNOCHANGE TPNOBLOCKTPNOTIME TPSIGRSTRT 【返回值】 0:调用成功,1:调用失败,错误号保证在全局变量tperrno中,.,40,BEA Tuxedo的开发,4、BEA Tuxedo通信方式 (1)同步调用,.,41,BEA Tuxedo的开发,4、BEA Tuxedo通信方式 (2)异步调用 tpacall( ) tpgetrply
48、( ) tpcancel(),C,S,S,C1,C2,S,.,42,BEA Tuxedo的开发,tpacall异步调用 【函数原型】 int tpacall(char *svc, char *data, long len, long flags) 【功能说明】 客户端异步调用服务端名为svc的Service,不等服务端返回结果,程序即可继续往下走,在某个地方可调用tpgetrply()取得服务端的返回 【参数说明】 *svc:Service的名称 char *data:输入缓冲区的地址,客户端传给服务端的参数放在该缓冲区内 long len:输入缓冲区的长度 long flags:调用标志,有
49、以下几个: TPNOREPLY:设置了该参数,则服务端不会给该客户端发送应答 TPNOTRAN TPNOBLOCK TPNOTIME TPSIGRSTRT 【返回值】 1:调用失败,成功返回一个Handler,可做为tpgetrply的参数,用于获取服务 端的返回结果,.,43,BEA Tuxedo的开发,tpgetrply获取应答步调用 【函数原型】 int tpgetrply(int *cd, char *data, long *len, long flags) 【功能说明】 取出服务端对tpacall()的应答 【参数说明】 *cd:tpacall()返回的Handler char *d
50、ata:返回缓冲区的地址,客户端传给服务端的参数放在该缓冲区内 long *len:返回缓冲区的长度 long flags:调用标志,有以下几: TPGETANY TPNOCHANGE TPNOBLOCK TPNOTIME TPSIGRSTRT 【返回值】 1:调用失败,错误号保证在全局变量tperrno中,.,44,BEA Tuxedo的开发,tpcancel取消服务端调用 【函数原型】 int tpcancel(int cd) 【功能说明】 如果当前的程序不处于事务模式中,取消对tpacall()的应答。如果处于事务模式中,则不能取消对tpacall()的应答,该调用会失败 【参数说明】
51、cd:tpacall()返回的Handler 【返回值】 1:调用失败,错误号保证在全局变量tperrno中,.,45,BEA Tuxedo的开发,4、BEA Tuxedo通信方式 (2)异步调用,.,46,BEA Tuxedo的开发,4、BEA Tuxedo通信方式 (3)管道 tpforward( ),C,S1,S3,S2,.,47,BEA Tuxedo的开发,tpforward管道通讯 【函数原型】 void tpforward(char *service, char *data, long len, long flags) 【功能说明】 服务进程在处理客户请求时,不把结果返回给客户进程
52、,而是把处理过的结果进一步转发给后续的其他服务进程,由其他服务进程接着处理,自己继续完成另外的服务请求。被转发的服务请求的结果由后续服务进程直接返回给客户进程。 【参数说明】 service: 要调用的Service的名字 data: 传送给该Service的输入缓冲区 len: data缓冲区的长度 flags: 未使用,置为0 【返回值】 无,.,48,BEA Tuxedo的开发,4、BEA Tuxedo通信方式 (3)管道,.,49,BEA Tuxedo的开发,C,S,4、BEA Tuxedo通信方式 (4)会话方式 采用会话通信方式,通信双方在建立连接之后,可以多次发送或接收数据。Tu
53、xedo中采用的是半双工的通信方式,这种方式特别适用于大批量数据传输。 发起者(originator,initiator):发起该会话的进程,她调用tpconnect()与服务器端的一个service建立连接 从属者(subordinate):tpconnect()中指定的service 发送者(sender):当前拥有发送权的进程,它只能发送数据 接收者(receiver):当前拥有发送权的进程,它只能接收数据 tpconnect( ), tpsend( ), tprecv(),tpdisconnect(),.,50,BEA Tuxedo的开发,4、BEA Tuxedo通信方式 (5)广播、
54、通知 由服务进程向客户进程以单个(tpnotify)或批量(tpbroadcast)方式发出的未经客户请求的广播或通知信息,客户可在适当的时候检查(tpchkunsol)是否收到通知消息并定义(tpsetunsol)收到消息后所采取的动作。 两种使用方式: (1)一对一(点对点):一个服务器端进程或客户端进程给某个客户端进程发消息 (2)一对多(广播):一个服务器端进程或客户端进程给符合某个条件的一组客户端发消息 消息的通知方式有3种: (1)IGNORE:该Tuxedo应用系统中的客户端不接收任何消息 (2)SIGNAL:用SIGUSR1、SIGUSR2信号通知客户端有消息到来 (3)DIP
55、IN:当客户端调用ATMI函数时,顺便查看是否有消息,如果有则调用消息出来函数进行处理。 消息的通知方式在UBBCONFIG文件的RESOURCES中设置,默认为DIPIN,.,51,BEA Tuxedo的开发,4、BEA Tuxedo通信方式 (5)广播、通知,.,52,BEA Tuxedo的开发,P,P,Q,4、BEA Tuxedo通信方式 (6)/Q队列 /Q部件是Tuxedo系统的一个重要组成部分,它提供了一个可靠队列机制,允许消息按照某种排队规则存储到磁盘上或内存中,然后再转发给其他处理进程。这种存储转发机制可以保证在两个通信实体之间传递的消息不丢失、不重传,从而保证交易的完整性,.
56、,53,BEA Tuxedo的开发,4、BEA Tuxedo通信方式 (7)发布/订阅 客户端与服务器之间还可以通过发布/订阅来进行通信,对某一事件()或某一类事件感兴趣的客户端或服务端可以订阅该事件。当该事件发生时,已订阅了该事件的进程就可以收到该事件,在程序中可对这些事件进行处理。 Tuxedo的事件分为系统事件和用户自定义事件: 系统事件:是由Tuxedo系统内定义的。如系统重启或关闭等,都会产生一个系统事件 用户自定义事件:是由应用自己定义的事件。当某种条件满足时,调用tppost()产生该事件 tppost( ) tpsubscribe( ),.,54,BEA Tuxedo配置信息U
57、BBCONFIG,一个BEA TUXEDO应用包含四个基本组成部分: 一个用来描述应用的配置文件 执行服务请求的服务器(Server) 发起请求的客户端(Client) 构造和运行应用的命令 UBBCONFIG文件是配置文件的文本形式,可以使用任何一个文本编辑器创建和修改。你必须为每个新应用创建一个UBBCONFIG文件。TUXCONFIG 文件是配置文件的二进制形式,.,55,BEA Tuxedo配置信息UBBCONFIG,1、RESOURCES:设置域范围参数(必须) RESOURCES小节是一个必须存在的小节,并且必须是配置文件中的第一个小节。本节包括如下信息: 共享内存的地址(IPCK
58、EY)启动和关闭服务程序的管理点(MASTER)访问应用的用户控制(UID、GID和PERM)本应用的安全级别(SECURITY、AUTHSVC)应用中各进程的IPC限制,服务器进程的数量,以及提供的服务数(MAXACCESSERS、MAXSERVERS、MAXSERVICES)应用结构(MODEL),表明是单机器应用还是多机器应用是否使用服务器负载均衡(LDBAL)缓冲区类型和子类型的最大数目(MAXBUFTYPE、MAXBUFSTYPE)公告牌健全扫描(sanity scans)的时间间隔(SCANUNIT、SANITYSCAN)服务请求的超时值(BLOCKTIME)并发会话最大数目(MA
59、XCONV)主动通知方法(NOTIFY、USIGNAL),.,56,BEA Tuxedo配置信息UBBCONFIG,2、MACHINES:配置机器(必须) 应用中的每个机器必须在配置文件的MACHINES小节中有一个入口项,并且该小节必须是配置文件的第二个小节。MACHINES小节中包含应用中每个机器的如下信息: 机器地址到逻辑标识(LMID)的映射 配置文件的位置(TUXCONFIG) BEA TUXEDO软件的安装位置(TUXDIR) 应用服务器的位置(APPDIR) 应用日志文件的位置(ULOGPFX) 环境文件的位置(ENVFILE) MACHINES小节中必需的几个参数是LMID、TUXCONFIG、TUXDIR和APPDIR,.,57,BEA Tuxedo配置信息UBBCONFIG,3、GROUPS:配置组信息(必须) 通过GROUPS小节可以指定从逻辑上分组的服务器集,这些服务器组以后可被用来访问资源管理器(resource managers),并且便
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 初级加油站操作员考试题库及答案
- 2025-2026人教版小学三年级语文上学期期末测试卷
- 枣庄一调二调试题及答案
- 2025-2026一年级音乐上学期卷
- 图文店安全卫生管理制度
- 卫生院疾控防疫制度
- 上海市酒店卫生管理制度
- 寄宿生卫生管理制度
- T∕CAICI 124-2025 5G消息业务增强能力规范-搜索能力要求
- 卫生院妊娠药品管理制度
- 生产现场资产管理制度
- 起重设备安全使用指导方案
- 江苏省扬州市区2025-2026学年五年级上学期数学期末试题一(有答案)
- 建筑与市政工程地下水控制技术规范
- “党的二十届四中全会精神”专题题库及答案
- 2025年天翼云解决方案架构师认证考试模拟题库(200题)答案及解析
- 2026年西藏自治区政府部门所属事业单位人才引进(130人)笔试备考试题及答案解析
- 油气开采毕业论文
- 血凝d-二聚体和fdp课件
- 2026-2031中国房地产估价市场分析预测研究报告
- 天津市和平区2025年高二化学第一学期期末监测试题含解析
评论
0/150
提交评论