免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
12下一页
最近访问板块 发新帖
查看: 14674 | 回复: 14

[Tuxedo] Tuxedo的配置管理简要说明 [复制链接]

论坛徽章:
0
发表于 2003-08-16 21: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进程
-i        srvid                  启动/关闭某个server id指定的Server进程
-g        grpname                启动/关闭某个server 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机器上启动任何一个进程失败时执行
-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节提供整个系统的基本参数。

IPCKEY                55555 (32767-262143)
#进行IPC通讯的key值
DOMAINID                unicom  
#DOMAIN的ID值
MASTER                        unicom1,unicom2
#指定DOMAIN中的管理主机为unicom1,运行过程中unicom1若出现问题,管理主机切换至unicom2
MAXACCESSERS  1000
#这里该值表示整个系统中每个机器上可以访问TUXEDO的Client和Server的总数(可以访问 BBL的最大进程数),应大于license用户数+server数(副本应记入)。该字段会被MACHINE部分的MAXACCESSERS覆盖。
#系统核心参数中SEMAPHORE的数目(SEMMNS)要大于这里的MAXACCESSERS数目,而ipc消息个数(MSGMAX)应大于MAXACCESSERS数+所有带REPLYQ的SERVER的个数。
MAXSERVERS        80  
#最大的server数(副本应记入)
MAXSERVICES        200
#最大的service数(多个server重复记入)
MAXGTT                        20
        #系统最多的并发的全局交易数目
MODEL                        MP  
#表示cluster方式,否则为SHM
OPTIONS                        LAN,MIGRATE  
#多机cluster方式时必须指定为LAN方式,MIGRATE表示可以以组为单位进行机器间SERVER的迁移。
LDBAL                        Y  
#允许负载均衡

SCANUNIT                10
#SCANUNIT 是BBL在所有服务请求中定期扫描以寻找超时的交易和被阻塞德调用和德间隔时间(秒)。这个参数指定BBL扫描间隔时间的基本单位, 它会影响在tpbegin中指定的交易超时时间和用BLOCKTIME指定的请求阻塞超时时间的精确程度。SANITYSCAN, BBLQUERY, DBBLWAIT, BLOCKTIME等参数都是SCANUNIT的倍数,而不是实际秒数。而作为时间单位SCANUNIT必须是5的倍数,并且满足0<SCANUNIT<60。

SANITYSCAN                12
        #SANITYSCAN的值指定在每个MACHINE上BBL自动检测所有进程的时间间隔,以SCANUNIT为单元。缺省值满足(SCANUNIT*SANITYSCAN)约为120秒。

DBBLWAIT                 2
#DBBLWAIT的值指定DBBL扫描BBL时等待所有BBL应答的最大时间,以SCANUNIT为单元,即超过DBBLWAIT*SCANUNIT(秒)就超时。每一次DBBL将请求转发给它的BBL时,BBL会在请求返回结果之前先回复一个肯定的应答。这样可以定时检测死掉或不正常的BBL。缺省值满足(SCANUNIT*DBBLWAIT)的值等于SCANUNIT和20秒两者之间的最大者。

BBLQUERY                30
        #BBLQUERY指定DBBL对所有BBL进行状态检查的时间间隔,它也是以SCANUNIT为计算单位。如果DBBL的状态询问没有回答,该BBL就被‘隔离’了。缺省值满足(SCANUNIT * BBLQUERY) 约为 300秒。

BLOCKTIME                6
        #BLOCKTIME指定在阻塞队列中的被阻塞请求的超时时间,以SCANUNIT为计算单位。缺省值满足(SCANUNIT * BLOCKTIME) 约为60秒。

*MACHINES
DEFAULT:
#该部分对各主机进行描述。
unicom2        LMID=unicom2
                APPDIR="/usr/tuxedo/apps/simpapp"
                TUXCONFIG="/usr/tuxedo/apps/simpapp/tuxconfig"
                TUXDIR="/usr/tuxedo"
                UID=17
                GID=26
                MAXACCESSERS=100
unicom1        LMID=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=unicom2        GRPNO=1        OPENINFO=NONE
GROUP2  LMID=unicom3        GRPNO=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) ,服务进程也不会增减。

WSL                SRVGRP=GROUP2 SRVID=1
                CLOPT="-A -- -n //130.36.0.103:8889 -m 3 -M 10 -x 10 -T 10"
#WSL用于和client端进行连接。-n 表示出接入点为IPORT方式,-m –M 表示最小和最大启动多少个WSH和前端通讯,-x则表示一个WSH和几个client端连接。-T 10表示如果client端和server连接后10分钟内没有交易请求则关闭连接。

*SERVICES
#不要求将所有的service在这里描述,当某个service有特别参数时才在SERVICE节中说明。
TOUPPER

*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"

三、数据库XA设置
     3.1 ORACLE XA
1.在附件中提供了rm文件,另外建议运行oracle的demo文件获得要连接的所有lib库的名称.然后将这些名称全部写在RM文件中.
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一侧需运行xaview.sql,并且scott用户有操作权限,运行结果会记录trc文件里.(在oracle8.0.5这一步不是必须的)
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=100
7.建立TLOG文件直接拷贝$TUXDIR/apps/bankapp/crtlog.sh.设定相关的环境变量后运行该shell文件.
8.启动事务用tpbegin(3,0),提交回滚用tpcommit/tpabort.

    3.2 SYBASE XA

1.在RM文件,运行sybase获得要连接的所有lib库的名称.然后将这些名称全部写在RM文件中:Sybase_XA??????.
2.ubbconfig 文件中 *GROUP节 TMS_NAME=TMS_SYB TMSCOUNT=3  OPENINFO="?????"
具体察看Sybase文当中xa_open String中提供了解释
3.运行 buildtms -o $(TUXDIR)/bin/TMS_SYB -r Sybase_XA
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=100
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/esql/libixos.a /usr/informix/lib/esql/libixgen.a /usr/informix/lib/esql/libixsql.a /usr/informix/lib/libixasf.a /usr/informix/lib/esql/libixos.a /usr/informix/lib/esql/libixgen.a /usr/informix/lib/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=100
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 //host:ipport
注意这里的ipport必须和ubb文件中NETWORK域的NLSADDR一致
tlisten必须在所有的机器上启动,启动后才能运行tmboot.建议操作系统启动时就运行tlisten.

    4.2 ubb文件配置
对于多机模式一般就是指单一domain管理的多台机器,所有机器上仅需要一个ubb文件,以下是ubb文件的模板
*RESOURCES
IPCKEY                80952
MAXACCESSERS        40
MAXSERVERS        35
MAXSERVICES        75
MASTER                SITE1,SITE2
OPTIONS        LAN,MIGRATE
MODEL                MP
*MACHINES
<SITE1's uname>; LMID=SITE1
                TUXDIR="<TUXDIR1>;"
                APPDIR="<APPDIR1>;"
                TUXCONFIG="<APPDIR1>;/tuxconfig"
                TYPE="<machine type1>;"
                ULOGPFX="<APPDIR1>;/ULOG"
<SITE2's uname>;        LMID=SITE2
                TUXDIR="<TUXDIR2>;"
                APPDIR="<APPDIR2>;"
                TLOGDEVICE="<APPDIR2>;/TLOG"
                TLOGNAME=TLOG
                TUXCONFIG="<APPDIR2>;/tuxconfig"
                TYPE="<machine type2>;"
                ULOGPFX="<APPDIR2>;/ULOG"
#
*GROUPS
*NETWORK
SITE1        NADDR="<network address of SITE1>;"
        BRIDGE="<device of provider1>;"
        NLSADDR="<network listener address of SITE1>;"
SITE2        NADDR="<network address of SITE2>;"
        BRIDGE="<device of provider2>;"
        NLSADDR="<network listener address of SITE2>;"
*SERVERS
DEFAULT: RESTART=Y MAXGEN=5 REPLYQ=Y CLOPT="-A"
#
*SERVICES

    4.3管理
只能在master机上运行tmadmin进行管理。要获得统计信息在tmadmin中应运行default –m命令。
例如:
tmadmin
>;default –m SITE1
>;printservice
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之间缺省不进行数据翻译!
4.tlisten password应该相同.我发现%TUXDIR%\udataobj\tlisten.pw中密码相同的条件应将回车考虑在内.
5.有时LANG环境变量无法改变为C, 可以在 %TUXDIR%\locale创建文件夹 mkdir %LANG%.
6.RM文件使用中发现有效的RM后一定要有回车,否则将报RM不存在.
以下是一个ubb的例子.

*MACHINES
SUN           LMID=SITE1
        TYPE="SUN"
        MAXACCESSORS=10
#here is NT configuration
NT          LMID=SITE2
        UID=0
        GID=0
        TYPE="NT"
        MAXACCESSORS=10

论坛徽章:
0
发表于 2003-08-16 21:21 |显示全部楼层

Tuxedo的配置管理简要说明

不错

以前老板中有很多但是都拿不出来
现在能补充这方面的资料真是太好了

论坛徽章:
0
发表于 2003-08-16 21:56 |显示全部楼层

Tuxedo的配置管理简要说明

另,
应用配置Tuxedo的时候,决大多数情况下只会使用到一个数据库。虽然XA规范中会自动将2PC变成1阶段提交(性能优化),但一般来说由于数据库的XA实现限制(例如有些只能提供单线程),性能还是会打折扣,所以一般都不配置XA接口,而采用数据库直连方式。

论坛徽章:
0
发表于 2003-08-16 22:10 |显示全部楼层

Tuxedo的配置管理简要说明

学习ing

虽然偶现在还没有看到过中间件

先了解一下先

论坛徽章:
0
发表于 2003-08-17 16:18 |显示全部楼层

Tuxedo的配置管理简要说明

原帖由 "李大屠娇" 发表:
另,
应用配置Tuxedo的时候,决大多数情况下只会使用到一个数据库。虽然XA规范中会自动将2PC变成1阶段提交(性能优化),但一般来说由于数据库的XA实现限制(例如有些只能提供单线程),性能还是会打折扣,所以一般..........
   

这位老大写很是全面,不错不错!要你多请教!
曾经有两个问题,想老大请教请教,
1、我对XA不太感冒,很多次都配了,但实际没有用,或有的用不上,现在要配置DB2的不知道有例子没?:)谢谢。
2、能够将一个SERVER变为TMADMIN中不能PSR出的SERVER?(就象MIB服务一样,个人想法不切实际!嘿嘿)

论坛徽章:
0
发表于 2003-08-18 01:16 |显示全部楼层

Tuxedo的配置管理简要说明

ding!

论坛徽章:
0
发表于 2003-08-18 12:49 |显示全部楼层

Tuxedo的配置管理简要说明

tuxedo的资料可以去BEA的网站去看,有的是很多的了,还可以去dev2dev.bea.com.cn论坛去看,那里有很多值得学习的东西,是现在最好的关于中文TUXEDO论坛的好地方,当然还有WEBLOGIC等学习的资料和论坛了。大家有兴趣可以去看看了。

论坛徽章:
0
发表于 2003-08-18 20:51 |显示全部楼层

Tuxedo的配置管理简要说明

sxf2000,第1个问题(DB2的XA配置,RM),我目前只有下面的资料
                DB2         UDB 5.2         NT 4.0       
                        UDB_XA;db2xa_switch;C:\SQLLIB\lib\db2api.lib       
                DB2         UDB 5.2         AIX 4.3       
                        UDB_XA:db2xa_switch/sqllib/lib -ldb2
其它平台的我也不清楚,但Tuxedo的交易管理器是根据不同RM来生成的,每个RM必须提供2个最基本的东西,一个是xa_open()中的xa_info配置字符串;另一个就是xa_switch_t结构和具体的连接库。如果平台不同,你可以参考DB2的文档来修改具体的配置串。
前段时间上网,逛到一个地方(http://www.middleware.net/tuxedo/resources/rmentries.html),上面总结的RM入口还比较全面,可以参考。

第2个问题,按照我自己的理解应该不行。不过对你那样做的初衷也很迷惑,有什么具体实用目的?
ishallfly 该用户已被删除
发表于 2005-06-14 12:38 |显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽

论坛徽章:
0
发表于 2005-06-20 10:32 |显示全部楼层

Tuxedo的配置管理简要说明

不错,顶
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP