TUXEDO 常用命令及环境介绍 一、环境
TUXCONFIG=path_name_of_TUXCONFIG_file BDMCONFIG=path_name_of_BDMCONFIG_file
TUXDIR=path_name_of_BEA_Tuxedo_system_root_directory APPDIR=path_name_of_BEA_Tuxedo_application_root_directory PATH=$APPDIR:$TUXDIR/bin:/bin:$PATH
SHLIB_PATH =$APPDIR:$TUXDIR/lib:/lib:/usr/lib:$ SHLIB_PATH Export TUXCONFIG TUXDIR APPDIR PATH SHLIB_PATH
二、命令
1.配置文件装载、备份,服务启动、关闭命令
Tmloadcf:根据指定TUXCONFIG环境,把文本文件转换成二进制文件 Tmunloadcf:把TUXCONFIG二进制文件转换成文本文件
Dmloadcf:根据指定BDMCONFIG环境,把文本文件转换成二进制文件 Dmunloadcf:把BDMCONFIG二进制文件转换成文本文件
Tmboot [[-g grpname] [-i srvid]]:启动服务,不带参数启动所有服务,-g参数启动指定组名称内的服务,-i参数启动指定标识的服务
Tmshutdown [[-g grpname] [-i srvid]]:停止服务,不带参数停止所有服务,-g参数停止指定组名称内的服务,-i参数停止指定标识的服务
2.Tmadmin命令
Tmadmin:BEA Tuxedo bulletin board command interpreter >crdl –z path –b blocks:创建TLOG设备,path是ubbcfg中的TLOGDEVICE,-b略大于ubbcfg中的TLOGSIZE
>crlog –m machine:创建事务LOG文件,machine是ubbcfg中的MASTER的值
>Printclient (pclt):显示当前CLIENT连接情况 >Printqueue(pq):显示队列情况
>PrintServer(psr):显示所有SERVER情况(调用次数、IDLE/BUSY) >PrintService(psc):显示所有SERVICE情况(调用次数、IDLE/BUSY)
>Bbclean(bbc):一些服务无法正常停止,用BBC清除进程IPC资源后,可正常停止
3.Ipc清除命令,进程杀死命令
ipcs|awk '/bill/{if(NF==6)print \:清除属于用户bill的所有ipc资源,如果需要清除其他用户的ipc资源,把bill替换成相应的用户名称
ps -ef|awk '!/sh/{if($1==\:杀死属于用户bill的所有进程,如果需要杀死其他用户的进程,把bill替换成相应的用户名称
4.检查某个用户超过占用内存脚本文件:chkmem,输入参数用户名称,最小占用内存 ShowProcs () {
typeset -i M_SIZE typeset -i K_SIZE [ $1 ] || {
echo \ return }
while [ $1 ] do
if [ $1 != \ then
if [ $3 -ge \ then
K_SIZE=$3*4
M_SIZE=K_SIZE/1024 echo \exec=$5 SZ=$K_SIZE(K), $M_SIZE(M)\'{printf(\ fi fi shift 5 done }
typeset -i MEMORY
echo \echo \read USER
echo \read MEMORY
MEMORY=$MEMORY*256
PROCS=\ShowProcs $PROCS
Q: 应用服务引起oracle数据库的分布锁
A: 这个问题比较常见,但诱因特别多,比如应用逻辑不严谨,数据库资源不够,tpbegin()超时等等。可以加一个参数DISTRIBUTED_LOCK_TIMEOUT来自动解锁,同时在OPENINFO中加DbgFl=15来提供XA的trace信息让我们分析。 这个问题的后继处理可以直接和bea公司的800中心直接联系;
Q: 网络不稳定
A: 这个问题比较的无解,因为在TCP/IP协议上,如果没有接到IP报文,有可能是网络断,也有可能是对方没发送(比如营业员离开,或关机)。建议加一个KeepAlive的参数,定期\一下对方,检验是否在存活。
Q: sql语句引起事务阻塞在一个TMS上
A: 可以将容易引起阻塞的业务服务单独提到另一个组中,快的走快车道,别让一个特别慢
的业务挡住别人。同时我们会咨询后台,看调度算法上是否有漏洞,导致这种阻塞正反馈的现象。
Q: TMS被阻塞住之后重新启动应用服务,此时必须重新启动oracle数据库之后TMS服务才能正常起来。
A: 这个问题比较常见,是因为TMS重起时要调用xa_recover来恢复事务,这时候数据库会查DBA_PENDING_TRANSACTIONS表,如此表被锁,就出此现象,此时即使是sqlplus同样也读不到该表数据。可以手工或自动解掉该锁而不须重起。
Q: 以下是南通应用服务进程内存占用情况列表,其中部分WSH进程占用内存相差很大 最小只有几百K,最大达到25M;应用进程也存在同样的情况:
PID=24017 exec=WSH SZ=26400(K), 25(M) PID=24026 exec=WSH SZ=26336(K), 25(M) PID=24024 exec=WSH SZ=26528(K), 25(M) PID=24021 exec=WSH SZ=27648(K), 27(M) PID=24023 exec=WSH SZ=10560(K), 10(M) PID=24020 exec=WSH SZ=1312(K), 1(M) PID=24018 exec=WSH SZ=2560(K), 2(M) PID=24025 exec=WSH SZ=2752(K), 2(M) PID=24019 exec=WSH SZ=3168(K), 3(M) PID=24022 exec=WSH SZ=2272(K), 2(M)
CASH_BILL执行了680000次调用
PID=23981 exec=CASH_BILL SZ=15352(K), 14(M) PID=23982 exec=CASH_BILL SZ=175912(K), 171(M) PID=23974 exec=CASH_BILL SZ=1336(K), 1(M) PID=23970 exec=CASH_BILL SZ=1256(K), 1(M) PID=23969 exec=CASH_BILL SZ=1108(K), 1(M) PID=23975 exec=CASH_BILL SZ=2152(K), 2(M) 请确认FML和WSH是否存在内存泄露的可能;
A: 这是由两个方面的原因引起的:操作系统数据段管理和tuxedo内部内存分配策略; 一般单进程占用内存在增长到一定数量之后将会停止增长,如果应用一直处于增长 状态,则可能存在memory leaks的情况。曾经在其他在用系统中出现过一个WSH 进程占用100M内存的情况;只能通过在运行一段时间后重新启动应用服务来解决。
Q: 无锡在digital操作系统上的客户端WSC出现的异常,在HP的客户端WSC相同的处理不会出现异常
113215.wxptt3!?proc.31016: LIBWSC_CAT:1011: ERROR: tpcall() message send failure 113258.wxptt3!?proc.31016: LIBWSC_CAT:1036: ERROR: Unexpected opcode returned 0 113258.wxptt3!?proc.31016: LIBWSC_CAT:1099: ERROR: Unable to receive tpabort() r eply
113337.wxptt3!?proc.31016: LIBWSC_CAT:1477: INFO: WS Handler has been shutdown 113337.wxptt3!?proc.31016: LIBWSC_CAT:1026: ERROR: Unable to get reply to tpterm
() request
请确认产生这种情况的原因,是否需要补丁解决?
A: 一般是由操作系统内核参数的消息长度设置值太小引起的,建议对操作系统内核参数进行
调整,加大有关参数的值。bea公司800在过年后仍然会对这个问题进行保留,后继问题
请直接和800联系。
Q: 扬州出现应用服务一直在处理的情况下,WSL参数 \会在第10分钟的时候将客户端的连接自动断开;
A: 这是正常的。-T参数直接对两次网络请求之间的时间间隔生效,如果处理业务要求时间较长 加大-T参数。 1. 单个应用服务的处理
单个应用服务出现异常,并且IPC资源没有被破坏;此时只需要将这个应用重新启动就可以。例如:AGENT_BILL应用服务出现问题,通过Tmadmin >psr,观察所有AGENT_BILL服务的RqDone,RqDone最大服务的grp name为GROUP1,ID为1,则使用以下命令: tmshutdown –g GROUP1 –i 1 tmboot –g GROUP1 –i 1
也可以在tmadmin命令下使用shutdown和boot命令重新启动应用服务,例如: tmadmin
>shutdown –g GROUP1 –i 1 >boot –g GROUP1 –i 1
如果tmshutdown 执行过程中不能正常关闭应用服务,则说明IPC资源可能已经被破坏;此时需要对整个应用服务重新启动;
2.整个应用服务
整个应用服务挂你关闭过程中如果不能正常关闭,一般是由IPC资源被破坏引起的。需要使用上述“Ipc清除命令,进程杀死命令”杀死属于某个用户的所有IPC资源和进程。
3.注意事项
(1)在运行正常并且有事务的情况下,不要关闭应用服务; (2)对大表的查询必须使用到索引;
(3)大数据量传输的应用建议不要在三层应用中实现;