




已阅读5页,还剩78页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
目录 中间件概述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的启动办法 tlisten l NLSADDR BEATuxedo常用命令使用方法 tmloadcf 编译TUXEDOUBB信息tmunloadcf 将TUXCONFIG转换成ASCII格式tmboot 启动TUXEDO系统服务tmshutdown 关闭所有或部分应用并释放IPC资源tmadmin TUXEDO系统管理buildclient 编译客户端程序buildserver 编译服务端程序 BEATuxedo常用命令使用方法 tmloadcf 编译TUXEDOUBB信息Usage tmloadcf y c n b ubb文件命令说明 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 eerrcmd tmboot命令启动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 k TERM 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常用命令使用方法 tmadmin TUXEDO系统管理Printserver psr 服务信息1 服务的可执行文件名2 服务连接的队列名3 组名4 服务的数字id5 服务已经处理的请求数6 服务处理的全部请求的参数和7 服务正在处理的交易 若为IDLE则服务当前是空闲Printservice psc 交易信息1 交易名2 交易函数名3 服务可执行文件名4 服务所在组名5 服务的数字id6 提供交易的机器的LMID7 交易已经执行的次数8 交易当前状态 BEATuxedo常用命令使用方法 tmadmin TUXEDO系统管理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 v oexecutable ffirst 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 v oexecutable 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 Errorallocatingsendbuffer n tpterm exit 1 BEATuxedo的开发 1 通讯缓冲区类型CARRAYCARRAY类型用于处理二进制数据 其中可以包含空字符 因此在使用该类型进行传输时必须指定长度 如果两台机器之间的编码不一样 Tuxedo不进行编码 解码工作 如果在客户端与服务器之间传送二进制的文件 就要采用CARRAY类型的缓冲区 使用方法 用二进制数据处理方式进行处理 使用例 客户端 if sendbuf tpalloc CARRAY NULL sendlen NULL fprintf stderr Errorallocatingsendbuffer n 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 LENGTH32charname XATMI SERVICE NAME LENGTH servicenameinvoked longflags describesserviceattributes char data pointertodata longlen requestdatalength intcd reservedforfutureuse longappkey applicationauthenticationclientkey CLIENTIDcltid clientidentifierfororiginatingclient typedefstructtpsvcinfoTPSVCINFO charname XATMI 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 GROUP1 SRVID 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中做相应的配置 B
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 互联网+本地生活服务2025年电商平台风险管理与市场拓展报告
- 2025年在线教育平台用户增长与留存策略课程体系优化
- 2025年科技企业孵化器建设资金申请策略与孵化器核心竞争力报告
- 罗庄区精细化管理办法
- 贸易信贷登记管理办法
- 2025年大学生国家安全知识竞赛试题及答案指导
- 免烧砖生产物料运输方案
- 生活垃圾收集作业安全防护方案
- 源网荷储一体化项目分布式光伏建设方案
- 冷链设备智能化升级改造方案
- 2026年高考政治一轮复习:必修+选必修共7册主观题背诵考点汇编
- 2025年《数字孪生与虚拟调试技术应用》课程标准
- TCCEAS001-2022建设项目工程总承包计价规范
- 人教版小学三年级数学(上册)全册教案
- 2024-2025学年人教版(2024)七年级英语上册 教学计划
- 中国文学理论批评史全套教学课件
- 工程结构设计原理课件--钢梁承载力计算原理
- 六年级上册美术课件-第一课图形创意与联想|冀教版共15张PPT
- 三年级上册信息技术全册课件ppt
- 小学语文分层作业设计
- 米亚基点焊机MDA-4000B全中文说明书
评论
0/150
提交评论