一、Tuxedo 基本命令 2 二、UBB 文件配置说明 3 三、数据库 XA 设置 7 3.1 ORACLE XA7 3.2 SYBASE XA8 3.3 INFORMIX XA8 四、Tuxedo 多机方式配置要点 9 4.1 启动 tlisten9 4.2 ubb 文件配置 9 4.3 管理 11 五、用 JOLT 连接 Tuxedo 和 Weblogic11 5.1 在 Tuxedo 上安装、配置 JOLT Server11 5.2 配置 Weblogic Server 6.x12 5.3 Example setup13 六、TUXEDO 动态配置 13 6.1 用 tmadmin 修改配置 13 6.2 用 tmconfig 更改 TUXCONFIG(UBBCONFIG)14 一、Tuxedo 基本命令 #1.设置环境变量 TUXDIR,APPDIR,TUXCONFIG, LANG(跟 OS 相关),LD_LIBRARY_PATH(跟 OS 相 关) #2.编译 ubb 文本生成二进制配置文件:tmloadcf –y ubbconfig #3.所有机器上运行 tlisten,具体见文档中 NETWORK 一节 #4.启动 tmboot –y #5.关闭 tmshutdown –y 参数: -A 在所有机器上启动/关闭管理的 Server 进程 -M 只在 MASTER 机器上启动/关闭管理的 Server 进程 -isrvid 启动/关闭某个 server id 指定的 Server 进程 -ggrpname 启动/关闭某个 server group 名字指定的 Server Group -S 启动/关闭所有应用服务器(LMID) -sserver-name 启动/关闭某个 server 名字指定的 Server 进程 -llmid option 在指定的机器上启动/关闭所有 TMS 进程和应用服务器(LMID) -Tgrpname 启动/关闭指定的 server group 中所有的 TMS 进程 -Blmid 在指定的机器上启动/关闭 BBL 进程 -ecommand 指定一个程序可以当在 MASTER 机器上启动任何一个进程失败时执行 -c 计算出当前 UBB 配置的 Tuxedo 启动最少要占用的系统 IPC 资源 #用 tmunloadcf > generated.ubb 可以得出目前配置得 UBB 文件所有得参数值 (没有设置的有缺省值) #用 tmloadcf –c 或 tmboot –c 可以计算出当前 UBB 配置的 Tuxedo 启动最少要占用的系统 IPC 资源。 二、UBB 文件配置说明 UBB 配置文件分成*RESOURCES,*GROUP,*SERVER,*SERVICE,*NETWORK 等若干节。DEFAULT 表示该节中所有对象共有的缺省属性。 *RESOURCES
#RESOUCES 节提供整个系统的基本参数。 IPCKEY55555 (32767-262143) #进行 IPC 通讯的 key 值 DOMAINIDunicom #DOMAIN 的 ID 值 MASTERunicom1,unicom2 #指定 DOMAIN 中的管理主机为 unicom1,运行过程中 unicom1 若出现问题, 管理主机切换至 unicom2 MAXACCESSERS 1000 #这里该值表示整个系统中单个机器上可以访问 TUXEDO 的最多的 Client 和 Server 的总数(可以访 问 BBL 的最大进程数),应大于 license 用户数+server 数(副本应记入) 。该字段会被 MACHINE 部分 的 MAXACCESSERS 覆盖。 #系统核心参数中 SEMAPHORE 的数目(SEMMNS)要大于这里的 MAXACCESSERS 数目,而 ipc 消息 个数(MSGMAX)应大于 MAXACCESSERS 数+所有带 REPLYQ 的 SERVER 的个数。 MAXSERVERS80 #最大的 server 数(副本应记入) MAXSERVICES200 #最大的 service 数(多个 server 重复记入) MAXGTT20 #系统最多的并发的全局交易数目 MODELMP #表示 cluster 方式,否则为 SHM OPTIONSLAN,MIGRATE #多机 cluster 方式时必须指定为 LAN 方式, MIGRATE 表示可以以组为单位进行机器间 SERVER 的迁移。 LDBALY #允许负载均衡 SCANUNIT10 #SCANUNIT 是 BBL 在所有服务请求中定期扫描以寻找超时的交易和被阻塞德调用和德间隔时间(秒) 。 这个参数指定 BBL 扫描间 隔时间的基本单 位,它会影 响在 tpbegin 中指定的交易超时时间和用 BLOCKTIME 指 定 的 请 求 阻 塞 超 时 时 间 的 精 确 程 度 。 SANITYSCAN, BBLQUERY, DBBLWAIT, BLOCKTIME 等参数都是 SCANUNIT 的倍数,而不是实际秒 数。而作为时间单位 SCANUNIT 必须是 5 的倍数,并且满足 0<SCANUNIT<60。 SANITYSCAN12 #SANITYSCAN 的值指定在每个 MACHINE 上 BBL 自动检测所有进程的时间间隔,以 SCANUNIT 为单 元。缺省值满足(SCANUNIT*SANITYSCAN)约为 120 秒。 DBBLWAIT 2 #DBBLWAIT 的值指定 DBBL 扫描 BBL 时等待所有 BBL 应答的最大时间,以 SCANUNIT 为单元,即超 过 DBBLWAIT*SCANUNIT(秒)就超时。每一次 DBBL 将请求转发给它的 BBL 时,BBL 会在请求返回 结 果 之 前 先 回 复 一 个 肯 定 的 应 答 。 这 样 可 以 定 时 检 测 死 掉 或 不 正 常 的 BBL 。 缺 省 值 满 足 (SCANUNIT*DBBLWAIT)的值等于 SCANUNIT 和 20 秒两者之间的最大者。 BBLQUERY30 #BBLQUERY 指定 DBBL 对所有 BBL 进行状态检查的时间间隔,它也是以 SCANUNIT 为计算单位。如 果 DBBL 的状态询问没有回答, BBL 就被‘隔离’了。 该 缺省值满足(SCANUNIT * BBLQUERY) 约为 300 秒。 BLOCKTIME6
#BLOCKTIME 指定在阻塞队列中的被阻塞请求的超时时间(包括客户端从 tpinit 到 tpterm 的等待时间), 以 SCANUNIT 为计算单位。缺省值满足(SCANUNIT * BLOCKTIME) 约为 60 秒。 *MACHINES DEFAULT: #该部分对各主机进行描述。 unicom2LMID=unicom2 APPDIR="/usr/tuxedo/apps/simpapp" TUXCONFIG="/usr/tuxedo/apps/simpapp/tuxconfig" TUXDIR="/usr/tuxedo" UID=17 GID=26 MAXACCESSERS=100 unicom1LMID=unicom1 APPDIR="/usr/tuxedo/apps/simpapp" TUXCONFIG="/usr/tuxedo/apps/simpapp/tuxconfig" TUXDIR="/usr/tuxedo" UID=17 GID=26 MAXWSCLIENTS=50 #unicom2, unicom1 为网络主机名用 hostname 获得。 #LMID:Logical Machines ID 为 tuxedo 对主机的内部逻辑命名。 #APPDIR 要求放置 SERVER 的可执行文件。 #TUXCONFIG 为全路径的二进制配置文件,要求和环境变量 TUXCONFIG 相同。对于 master 机 tuxconfig 文件是由 tmloadcf 生成的, 而非 master 机则是由 tmboot 启动后由 tlisten 从 master 机上 拷贝获得。 #TUXDIR 为 tuxedo 安装目录,要求和环境变量 TUXDIR 相同。 #MAXWSCLIENTS 表示可连接 client 的最大个数。 *GROUPS #GROUP1 为组名, LMID 表示该组运行的主机, GRPNO 为组号, OPENINFO 为该组通过 XA 打开 RM(通 常指数据库)的初始串。 GROUP1 LMID=unicom2GRPNO=1 OPENINFO=NONE GROUP2 LMID=unicom3GRPNO=2 OPENINFO=NONE *SERVERS #这里描述应用服务器。SRVGRP 的该 SERVER 所属组名,SRVID 为服务器 ID 号,MIN 表示该服务器 CLOPT 提供运行的相关参数,要求是”-A -- ….”,可以在应用服务器的 srvinit 函数中获得这些参数。 DEFAULT: CLOPT="-A" BillServer SRVGRP=GROUP1 SRVID=1 MIN=2 MAX=4 RQADDR=QNAME REPLYQ=Y CLOPT="-A -o ./out.log –r -e ./err.log --p [L][low_water][,[terminate_time]][:[high_water][,create_time]] 如果 MAX>1,并且使用了 MSSQ(RQADDR, RQPERM)的 Server 可以配置-p 来控制进程的增加和 减少。控制算法如下:如果请求队列中的请求个数大于 high_water 后超过 create_time 秒,就增加该服
务的一个新进程;如果请求队列中的请求个数小于 low_water 后超过 terminate_time 秒, 就停止该服 务的一个进程。 low_water 缺省是平均每个服务进程有一个请求消息或者 workload 50; high_water 缺 省 是 平 均 每 个 服 务 进 程 有 两 个 请 求 消 息 或 者 workload 100 。 create_time 缺 省 最 小 是 50 秒, and terminate_time 缺省最小是 60 秒。 注意: 使用 TUXEDO 的服务进程池时,用户自己在程序中如果用 alarm()等系统调用来停止进程是不起作用 的,但也不会报错。 [L] 标记意味着增减服务进程基于负载而不是请求队列的长度。 仅用于 SHM 模式下并且 LDBAL=Y, 否 则会报错 (LIBTUX_CAT:1542) ,服务进程也不会增减。 WSLSRVGRP=GROUP2 SRVID=1 CLOPT="-A -- -n //130.36.0.103:8889 -m 3 -M 10 -x 10 -T 10" #WSL 用于和 client 端进行连接。-n 表示出接入点为 IP:PORT 方式,-m –M 表示最小和最大启动多少 个 WSH 和前端通讯,-x 则表示一个 WSH 和几个 client 端连接。-T 10 表示如果 client 端和 server 连 接后 10 分钟内没有交易请求则关闭连接。 *SERVICES #不要求将所有的 service 在这里描述,当某个 service 有特别参数时才在 SERVICE 节中说明。 TOUPPER LOAD=60 // 负载,当 LDBAL=Y 时有用 PRIO=80// 服务在请求队列中的优先级 TRANSTIME=120 // 交易时间 SVCTIMEOUT=600// 服务超时时间 *NETWORK #NETWORK 节对多机之间如何进行网络连接进行描述。 #cluster 方式下要求先启动 tlisten。事实上,对于非 master 机启动应用服务器是由 tlisten 完成的。 #tlisten 的启动方式为 #unicom1: tlisten –l //130.36.1.101:8891 #unicom2: tlisten –l //130.36.0.102:8891 #NADDR 指定网络连接的接入点。 #NLSADDR 则指定 tlisten 的接入点。 #BRIDGE 则指 TCP 连接所用的设备文件。 unicom2 NADDR="//130.36.0.102:8899" NLSADDR="//130.36.0.102:8891" BRIDGE="/dev/streams/xtiso/tcp" unicom1 NADDR="//130.36.0.101:8899" NLSADDR="//130.36.0.101:8891" BRIDGE="/dev/streams/xtiso/tcp" 分类总结 TypeParameters requiring tuning IdentificationTUXCONFIG, UID, GID, IPCKEY, DOMAINID ThresholdsMAXACCESSERS, MAXSERVERS, MAXSERVICES, MAXGTT, MAXCONV, MAXBUFST
YPE, MAXWSCLIENTS Time-outsSCANUNIT, SANITYSCAN, DBBLWAIT, BBLQUERY, BLOCKTIME AvailabilityMASTER, MIGRATE, RESTART, GRACE, MAXGEN, RCMD MachineTYPE, CMPLIMIT, NETLOAD, SPINCOUNT, TLOGDEVICE, PERM NetworkNADDR, NLSADDR ServersCLOPT, ENVFILE ServicesLOAD, PRIO, BUFTYPE, SVCTIMEOUT WorkstationsWSNADDR, WSRPLYMAX 三、数据库 XA 设置 3.1 ORACLE XA 1.在附件中提供了 rm 文件,另外建议运行 oracle 的 demo 文件获得要连接的所有 lib 库的名称.然后将这 些名称全部写在 RM 文件中. 如: #Oracle 8i for NT Oracle_XA;xaosw;%ORACLE_HOME%\RDBMS\XA\ORAXA8.LIB %ORACLE_HOME%\PRECO MP\LIB\MSVC\ORASQL8.LIB %ORACLE_HOME%\PRECOMP\LIB\MSVC\ORASQX8.LIB %OR ACLE_HOME%\OCI\LIB\MSVC\OCI.LIB %ORACLE_HOME%\OCI\LIB\MSVC\OCIW32.LIB #Oracle 8i for Unix Oracle_XA:xaosw:-L${ORACLE_HOME}/lib -lclntsh 2.ubb 文件中 *GROUP 节加上 TMSNAME=TMS_ORA TMSCOUNT=3 OPENINFO="Oracle_XA:Oracle_XA+Acc=P/scott/tiger+SesTM=120+LogDir =.+SqlNet=abcde" 具 体 在 Oracle 联 机 文 档 Application Development->oracle8 Application Development's Guild->Oracle XA->Defining the xa_open String 中提供了解释 3.在 oracle 用 sys 用户登录 sqlplus, a)运行${ORACLE_HOME}/rdbms/Admin/xaview.sql, b)grant select on v$xatrans$ to public; c)grant select on dba_pending_transactions to scott; d)commit; 4.运行 buildtms -o $(TUXDIR)/bin/TMS_ORA -r Oracle_XA 5. 在 tpsvrinit() 中 EXEC SQL CONNECT ... 改 成 tpopen(), tpsrvdone() 中 EXEC SQL DISCONNECT...改成 tpclose(); 实际可拷贝$TUXDIR/apps/bankapp/appinit.c 6.需在 ubb 文件中 MACHINE 节指定 TLOGDEVICE,TLOGSIZE 例:TLOGDEVICE="/home/usr1/TLOGDEV" TLOGSIZE=500 7.建立 TLOG 文件直接拷贝$TUXDIR/apps/bankapp/crtlog.sh.设定相关的环境变量后运行该 shell 文 件. 8.启动事务用 tpbegin(3,0),提交回滚用 tpcommit/tpabort. 3.2 SYBASE XA 1.在 RM 文件,运行 sybase 获得要连接的所有 lib 库的名称.然后将这些名称全部写在 RM 文件 中:#Sybase_11 for NT SYBASE_XA_SERVER;sybase_xa_switch;C:\SYBASE_SERVER\lib\libxasrvlib.lib
2.ubbconfig 文件中的 *GROUP 节 TMS_NAME=TMS_SYB TMSCOUNT=3 OPENINFO=" SYBASE_XA_SERVER: -Uuserid1 -Ppas sword1 -Nconnection2 -Lxa_log -Tall " 具体察看 Sybase 文当中 xa_open String 中提供了解释 3.运行 buildtms -o $(TUXDIR)/bin/TMS_SYB -r SYBASE_XA_SERVER 4. 在 tpsvrinit() 中 EXEC SQL CONNECT ... 改 成 tpopen, tpsrvdone() 中 EXEC SQL DISCONNECT...改成 tpclose(); 实际可查看$TUXDIR/apps/bankapp/appinit.c 5.需在 ubb 文件中 MACHINE 节指定 TLOGDEVICE,TLOGSIZE 例:TLOGDEVICE="/home/usr1/TLOGDEV" TLOGSIZE=500 6.建立 TLOG 文件直接拷贝$TUXDIR/apps/bankapp/crtlog.sh.设定相关的环境变量后运行该 shell 文 件. 7.启动事务用 tpbegin(3,0),提交回滚用 tpcommit/tpabort. 3.3 INFORMIX XA 1. 运 行 esql -lib 获 得 要 连 接 的 所 有 lib 库 的 名 称 . 然 后 将 这 些 名 称 全 部 加 到 RM 文 件 中 INFORMIX-OnLine:infx_xa_switch:${INFORMIXDIR}/lib/esql/libinfxxa.a /usr/informix/lib/e sql/libixos.a /usr/informix/lib/esql/libixgen.a /usr/informix/lib/esql/libixsql.a /usr/informix/l ib/libixasf.a /usr/informix/lib/esql/libixos.a /usr/informix/lib/esql/libixgen.a /usr/informix/li b/esql/libixgls.a -lnsl_s -lm -lV3 -lcl -lsec /usr/informix/lib/esql/libixglx.a 2.ubbconfig 文件中 *GROUP 节 TMS_NAME=TMS_INFO TMSCOUNT=3 OPENINFO="INFORMIX-OnLine:test_tux" 具体察看 Sybase 文当中 xa_open String 中提供了解释 3.运行 buildtms -o $(TUXDIR)/bin/TMS_INFO -r INFORMIX-OnLine 4. 在 tpsvrinit() 中 EXEC SQL CONNECT ... 改 成 tpopen, tpsrvdone() 中 EXEC SQL DISCONNECT...改成 tpclose(); 实际可查看$TUXDIR/apps/bankapp/appinit.c 5.需在 ubb 文件中 MACHINE 节指定 TLOGDEVICE,TLOGSIZE 例:TLOGDEVICE="/home/usr1/TLOGDEV" TLOGSIZE=500 6.建立 TLOG 文件直接拷贝$TUXDIR/apps/bankapp/crtlog.sh.设定相关的环境变量后运行该 shell 文 件. 7.启动事务用 tpbegin(3,0),提交回滚用 tpcommit/tpabort. 四、Tuxedo 多机方式配置要点 tuxedo 多机方式配置有两个方面 4.1 启动 tlisten tlisten 在 tuxedo 启动时扮演控制者的角色,在非 master 机上由 tlisten 启动 bbl 和应用服务器,tlisten 的启动方法为 tlisten -l //hostip:ipport 1.注意这里的 ipport 必须和 ubb 文件中 NETWORK 域的 NLSADDR 一致,最好都用 IP 地址,以避免双 方对同一机器名解释出不同的 IP 地址。 2. tlisten 必须在所有的机器上启动,启动后才能运行 tmboot.建议操作系统启动时就运行 tlisten. 3.注意各个节点的 tlisten 都有 PASSWORD,存在%APPDIR%\.adm\tlisten.pw 文件下,如果那里 没有, 就读 TUXEDO 的%TUXDIR%\udataobj\tlisten.pw 文件中的内容。 各节点的 tlisten password
要保证绝对一样(包括回车!。否则会报错:‘Security Violation’。 ) 4.2 ubb 文件配置 对于多机模式一般就是指单一 domain 管理的多台机器,所有机器上仅需要一个 ubb 文件,以下是 ubb 文 件的模板 *RESOURCES IPCKEY80952 MAXACCESSERS40 MAXSERVERS35 MAXSERVICES75 MASTERSITE1,SITE2 OPTIONSLAN,MIGRATE MODELMP// 多机模式 *MACHINES "PATRICK"LMID="site1" APPDIR="D:/Bea/tuxedo/samples/atmi/simpapp" TUXCONFIG="d:/Bea/tuxedo/samples/atmi/simpapp/tuxconfig" TUXDIR=" d:/Bea /tuxedo" UID=0 GID=0 TYPE="NT" MAXWSCLIENTS=5 MAXACCESSERS=40 "test60"LMID="site2" APPDIR="/bea/tuxedo/samples/atmi/simpapp" TUXCONFIG="/bea/tuxedo/samples/atmi/simpapp/tuxconfig" TUXDIR="/bea/tuxedo" UID=1002 GID=101 TYPE="Sun" MAXWSCLIENTS=15 MAXACCESSERS=100 *GROUPS GROUP1 LMID=site1GRPNO=1OPENINFO=NONE GROUP2 LMID=site2GRPNO=2OPENINFO=NONE *SERVERS DEFAULT:DEFAULT: RESTART=Y MAXGEN=5 REPLYQ=Y CLOPT="-A" WSLSRVGRP=GROUP1 SRVID=20 CLOPT="-A -- -n //10.128.5.201:9009" WSLSRVGRP=GROUP2 SRVID=10 CLOPT="-A -- -n //10.128.5.200:9009" simpservSRVGRP=GROUP1 SRVID=3 simpservSRVGRP=GROUP2 SRVID=4 *SERVICES *NETWORK site1NADDR="//10.128.5.201:6044" NLSADDR="//10.128.5.201:6045" // MIGRATE 表示 MASTER 可以动态迁移
site2NADDR="//10.128.5.200:6044" NLSADDR="//10.128.5.200:6045" # BRIDGE="/dev/tcp" 4.3 管理 只能在 master 机上运行 tmadmin 进行管理。 要获得统计信息在 tmadmin 中应运行 default –m 命令。 $tmadmin >default –m SITE1 >psr >bbi 当 MASTER 主机意外当机时,TUXEDO 仍可以正常运行,可以在 backup 的节点上手工做 MASTER 的 动态迁移,在当前的 backup 节点上 DBBL 充当 MASTER。 $tmadmin >m Windows NT/2000 下要注意的问题: 1.由于 NT 机器上 MAXACCESSORS 受 IPC 的限制通常较小,因此建议在 MACHINES 部分单独设置 MAXACCESSORS. 2.在 MACHINES 部分要单独设置 UID=0 和 GID=0 3.和其他类型的 CPU 机器互连时,在 MACHINES 部分一定要指定不同的 TYPE.否则将提示 tlisten 版本不 匹配。 TUXEDO 在 SERVER 和 CLIENT 之间进行数据交换缺省进行数据翻译,但一个 domain 的 server 之间缺 省不进行数据翻译! 5.有时 LANG 环境变量无法改变为 C, 可以在 %TUXDIR%\locale 创建文件夹 mkdir %LANG%. 6.RM 文件使用中发现有效的 RM 后一定要有回车,否则将报 RM 不存在. 五、用 JOLT 连接 Tuxedo 和 Weblogic 5.1 在 Tuxedo 上安装、配置 JOLT Server 1 – 安装 JOLT Server 2 -- set your environment set TUXDIR=d:\bea\tuxedo set JOLTDIR=%TUXDIR%\udataobj\jolt set APPDIR=%TUXDIR%\samples\atmi\simpapp set PATH=%TUXDIR%\bin;%JOLTDIR%\bin;%APPDIR%;%PATH% set NLSPATH=%TUXDIR%\locale\C set TUXCONFIG=%APPDIR%\tuxconfig 3 – added in UBBconfig file JSLSRVGRP=GROUP1 SRVID=6 CLOPT="-A -- -n //10.128.5.112:9001"JREPSVRSRVGRP= GROUP1 SRVID=7 CLOPT="-A -- -W -P d:\Bea\tuxedo\udataobj\jolt\repository\jrepository "JREPSVRSRVGRP=GROUP1 SRVID=8 CLOPT="-A -- -P d:\Bea\tuxedo\udataobj\jolt\reposi tory\jrepository" 5.2 配置 Weblogic Server 6.x 1,Download the Jolt client package for WLS from developer.bea.com, unzip it and copy the jar file to %WL_HOME%\lib. Then add the jar files into your Weblogic domain environment file: classpath=%classpath%;%WL_HOME%\lib\jolt.jar;%WL_HOME%\lib\joltweblogic.jar
2,Config Jolt pool manager startup class in Weblogic a,start Weblogic and access the console b,create Startup class and Shutdown class in console:Deployments->Startup & Shutdown,right click select create a new StartUp class...: name:demojoltpoolStartup classname:bea.jolt.pool.servlet.weblogic.PoolManagerStartUp 3,Create a jolt pool in console:Services->Jolt,right click Select the panel:Configuration in TAB General name:demojoltpool Minimum Pool Size:1 Maximum Pool Size:3 Click the button "Create" in TAB address Primary Address://hostname:port Failover Address://hostname:port Click the button "Apply" Select Targets: in Listbox Available: select your server add into the listbox Chosen Click the button "Apply" 4. Restart your Weblogic 5.3 Example setup 1.Run %WL_HOME%\config\example\setExampleEnv.cmd, 2.compile the SimpAppServlet by: javac -d %EX_WEBAPP_CLASSES% SimpAppServlet.java 3.Edit WL_HOME%\config\examples\applications\examplesWebApp\WEB-INF\web.xml add the servlet description: <servlet> <servlet-name>JoltServlet</servlet-name> <servlet-class>examples.jolt.s ervlet.simpapp.SimpAppServlet</servlet-class> </servlet> <servlet-mapping><servletname>JoltServlet</servlet-name> <url-pattern>/joltservlet</url-pattern> </servlet-map ping> 4.Edit a html and put it to %WL_HOME%\config\examples\applications\examplesWebApp 内容包含调用 JoltServlet Type some text here and click the Post button:<form name="simpapp" action="joltservlet" method="post"><input type="hidden" name="SVCNAME" value="TOUPPER"><input type ="text" name="STRING"></td><input type="submit" value="Post!"></form> 5.Goto %WL_HOME%\config\example, start the examples domain, 6.Access http://localhost:7001/examplesWebApp/jolt.html
五、用 JOLT 连接 Tuxedo 和 Weblogic 5.1 在 Tuxedo 上安装、配置 JOLT Server
1 – 安装 JOLT Server 2 -- set your environment set TUXDIR=d:\bea\tuxedo set JOLTDIR=%TUXDIR%\udataobj\jolt set APPDIR=%TUXDIR%\samples\atmi\simpapp set PATH=%TUXDIR%\bin;%JOLTDIR%\bin;%APPDIR%;%PATH% set NLSPATH=%TUXDIR%\locale\C set TUXCONFIG=%APPDIR%\tuxconfig 3 – added in UBBconfig file JSLSRVGRP=GROUP1 SRVID=6 CLOPT="-A -- -n //10.128.5.112:9001"JREPSVRSRVGRP= GROUP1 SRVID=7 CLOPT="-A -- -W -P d:\Bea\tuxedo\udataobj\jolt\repository\jrepository "JREPSVRSRVGRP=GROUP1 SRVID=8 CLOPT="-A -- -P d:\Bea\tuxedo\udataobj\jolt\reposi tory\jrepository" 5.2 配置 Weblogic Server 6.x 1,Download the Jolt client package for WLS from developer.bea.com, unzip it and copy the jar file to %WL_HOME%\lib. Then add the jar files into your Weblogic domain environment file: classpath=%classpath%;%WL_HOME%\lib\jolt.jar;%WL_HOME%\lib\joltweblogic.jar 2,Config Jolt pool manager startup class in Weblogic a,start Weblogic and access the console b,create Startup class and Shutdown class in console:Deployments->Startup & Shutdown,right click select create a new StartUp class...: name:demojoltpoolStartup classname:bea.jolt.pool.servlet.weblogic.PoolManagerStartUp 3,Create a jolt pool in console:Services->Jolt,right click Select the panel:Configuration in TAB General name:demojoltpool Minimum Pool Size:1 Maximum Pool Size:3 Click the button "Create" in TAB address Primary Address://hostname:port Failover Address://hostname:port Click the button "Apply" Select Targets: in Listbox Available: select your server add into the listbox Chosen Click the button "Apply" 4. Restart your Weblogic 5.3 Example setup 1.Run %WL_HOME%\config\example\setExampleEnv.cmd,
2.compile the SimpAppServlet by: javac -d %EX_WEBAPP_CLASSES% SimpAppServlet.java 3.Edit WL_HOME%\config\examples\applications\examplesWebApp\WEB-INF\web.xml add the servlet description: <servlet> <servlet-name>JoltServlet</servlet-name> <servlet-class>examples.jolt.s ervlet.simpapp.SimpAppServlet</servlet-class> </servlet> <servlet-mapping><servletname>JoltServlet</servlet-name> <url-pattern>/joltservlet</url-pattern> </servlet-map ping> 4.Edit a html and put it to %WL_HOME%\config\examples\applications\examplesWebApp 内容包含调用 JoltServlet Type some text here and click the Post button:<form name="simpapp" action="joltservlet" method="post"><input type="hidden" name="SVCNAME" value="TOUPPER"><input type ="text" name="STRING"></td><input type="submit" value="Post!"></form> 5.Goto %WL_HOME%\config\example, start the examples domain, 6.Access http://localhost:7001/examplesWebApp/jolt.html
六、TUXEDO 动态配置 TUXEDO 的动态配置可以通过 tmadmin 和 tmconfig 两个命令行工具实现不同级别的配置修改。 tmadmin 的作用主要是监控 TUXEDO 的运行,可以修改服务的参数;而 tmconfig 功能更强大,可以在 线修改当前 TUXEDO 的系统 UBB 配置,即通过 MIB 修改用 UBBCONFIG 生成的二进制 TUXCONFIG 在内存的拷贝。 6.1 用 tmadmin 修改配置 进入 tmadmin 后用命令 help 可以列出所有命令。 6.2 用 tmconfig 更改 TUXCONFIG(UBBCONFIG) tmconfig 工具实际上遍历 TUXCONFIG 的内容并通过 MIB API 修改其配置。要正确运行 tmconfig,建 议设置以下环境变量: TUXDIR=/usr/tuxedo TUXCONFIG=/usr/app/tuxconfig EDITOR=vi 主要的界面如下: $ tmconfig Section: 1) RESOURCES, 2) MACHINES, 3) GROUPS 4) SERVERS 5)SERVICES 6) NETWORK 7) ROUTING q) QUIT 9) WSL 10) NETGROUPS 11) NETMAPS 12) INTERFACES [1]: Operation: 1) FIRST 2) NEXT 3) RETRIEVE 4) ADD 5) UPDATE 6) CLEAR BUFFER 7) QUIT [1]: 4 Enter editor to add/modify fields [n]? Perform operation [y]? 1. 用 tmconfig 增加新主机 1.进入 tmconfig 后,选择 2)MACHINES 项 2.然后可以先选择 3)RETRIEVE 看看当前的配置,缺省是第一个 MACHINE 的配置 3.通过选择 2)NEXT 可以一直向后搜索 MACHINE 配置,直到空记录为止。 4.选择 4)ADD
Enter editor to add/modify fields [n]? y 5.进入 vi 编辑状态,可以按照一定格式增加配置。格式为: MIB 域名[tab]值 6.增加 MACHINE 必须加入以下的域: oTA_TUXCONFIG oTA_TUXDIR oTA_APPDIR oTA_TLOGDEVICE oTA_TLOGSIZE oTA_PMID oTA_LMID oTA_TYPE 例: TA_TUXCONFIG TA_TUXDIR TA_APPDIR TA_TLOGDEVICE TA_ULOGPFX TA_ENVFILE TA_TLOGSIZE TA_PMID TA_LMID TA_TYPE /usr/apps/bank/tuxconfig /usr/tuxroot /usr/apps/bank /usr/apps/bank/TLOG /usr/apps/bank/ULOG /usr/apps/bank/ENVFILE 150 SERVER109 SITE1 Sun
7.存盘退出 vi,执行操作即可。 8.激活新增的 MACHINE: 重新选择 2)MACHINES –> 5)UPDATE 9.进入 vi 后查找 TA_STATE,将其值从 NEW 改为 ACTIVE 10.存盘退出 vi 并执行操作。 2. 用 tmconfig 增加新 Server 进程 1.进入 tmconfig 后,选择 2)SERVER 项 2.可以先选择 3)RETRIEVE 看看当前的配置,缺省是第一个 SERVER 的配置 3.通过选择 2)NEXT 可以一直向后搜索 SERVER 配置,直到空记录为止。 4.选择 4)ADD Enter editor to add/modify fields [n]? y 5.进入 vi 编辑状态,可以按照一定格式增加配置。格式为:MIB 域名[tab]值 6.增加 MACHINE 必须加入以下的域: oTA_SERVERNAME oTA_SRVGRP oTA_SRVID 例: TA_SERVERNAME TA_SRVGRP TA_SRVID /usr/apps/bank/teller_server GROUP1 15
7.存盘退出 vi,执行操作即可。
七、系统核心参数参考 Message Queues Parameters ?MSGMNI: Total Number of Queues (Use this formula: Add MAXACCESSERS + (No. Server s with Reply Queues) - (No. Servers in MSSQ Set) + (No. MSSQ Sets) + 7) to determine th e appropriate value ?MSGMAP: Number of entries in control map used to manage message segments (Not defi ned in NT). Set to 2 * MSGMNI ?MSGMAX: Maximum message size in bytes. Set to the largest message size or 75% of th e queue size (whichever is bigger) ?MSGMNB: This is the queue size itself (64K, 128K, etc.) ?MSGSSZ: Size of a segment in bytes (Not defined in NT). The value of MSGSSZ should be such that a multiple of MSGSSZ is equal to the size (including the BEA TUXEDO System he ader) of the most commonly sent message. Usually set to 16, 32, or 64. ?MSGTQL: Total Number of In-Flight messages in the system at once ?MSGSEG: Number of message segments in the system (Not defined in NT). You need to fi nd out the queue space of your machine and then the following formula applies: MSGSEG * MSGSSZ = Machine Queue Space Size (note it will swap) Semaphores Parameters ?SEMMNS: Maximum number of semaphores in the system. The minimum requirement for SEMMNS is MAXACCESSERS - MAXWSCLIENTS + 13 (local clients and all servers) ?SEMMNI: Maximum number of active semaphore sets. For small apps,(100 to 500 server s),10 sets are usually sufficient. For large apps, (>500 servers) 32-64 sets are usually suf ficient (do a tmloadcf -c to see which is the best) ?SEMMSL: Maximum number of semaphores per semaphore sets (Not defined in NT). Use the formula: SEMMNS = SEMMNI * SEMMSL ?SEMMAP: Size of the control map used to control semaphore sets (Not defined in NT). Se t to SEMMNI ?SEMMNU: Number of undo structures in the system. Set to SEMMNS ?SEMUME: Maximum number of undo entries per undo structure (Not defined in NT). Set to SEMMNS Shared Memory Parameters ?SHMMAX: Maximum shared memory segment size in bytes. Bulletin Board Size (must be greater than 1,400,000). Largest BB today is approx. 5 MB (this parameter is normally set much higher for the database, so use their rules) ?SHMSEG: Maximum number of segments one process can attach to (for a busy applicatio n you need to set this from 32-64) ?SHMMNI: Maximum number of shared memory identifiers in the system. Normally the def ault of 100 is acceptable (unless more than 100 entities plan on allocating shared memory) ?SHMMIN: Minimum shared memory segment size in bytes. MUST be set to 1. Other Tunables ?ULIMIT: Maximum file size. ULIMIT needs to be large enough so that you can install BEA T UXEDO and build servers. 4 megabytes recommended. ?MAXUP: Maximum number of processes per non-super user. The BEA rocesses--servers and administrative processes—run TUXEDO system p with the UID specified in the appli
cation's UBBCONFIG file. MAXUP needs es to run.
to be large enough to allow all of these process
?NOFILES: Maximum number of open files per process. A BEA TUXEDO server requires a minimum of four file descriptors. ?NPROC: Maximum number of processes (systemwide). ?NREGION: Number of region table entries to allocate. Most processes have three regions: text, data, and stack. Additional regions are needed for each shared memory segment and shared library (text and data) attached. However, the region table entry for the text of a ` `shared text'' program is shared by all processes executing that program. Each shared me mory segment attached to one or more processes uses another region table entry. ?NUMTIM: Maximum number of STREAMS modules that can be pushed by the Transport La yer Interface (TLI). A typical default value is 16; you should have it set to at least 256. ?NUMTRW: The number of TLI read/write structures to allocate in kernel data space. A typi cal default value is 16; you should have it set to at least 256. Tuxedo 系统平台的调试参数及步骤 1.配置 MAXSERVERS、MAXSERVICES 两个参数,看是否满足 ubbfile 文件的配置的服务数和服务参 数的个数。Tmadmin——bbs,看里面的参数个数。 2.数据库的可以连接数的大小是否满足 ubbfile 文件里面同一个数据库连接得 servers 的数目。参照 xa_NULL*.trc 文件的错误提示。 3.用命令 tmloadcf –c ubbfile 看 tuxedo 的进程所需要的共享内存配置。然后修改系统的共享内存的 配置。除了 AIX 平台外,系统的共享内存参数——set shmsys:shminfo_shmmin 要设置为 1。 4.Tmunloadcf 看现在运行的 TUXEDO 环境。 5.Tmadmin——crdl -b -z 创建日志文件。 6.TUXEDO 环境的设置顺序。Tuxconfig——tmadmin——TLOG
--转自