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 "ipcrm -"$1" "$2}' sh:清除属于用户bill的所有ipc资源,如果需要清除其他用户的ipc资源,把bill替换成相应的用户名称 ps -ef awk '!/sh/{if($1=="bill")print "kill -9 "$2}' sh:杀死属于用户bill的所有进程,如果需要杀死其他用户的进程,把bill替换成相应的用户名称
4.检查某个用户超过占用内存脚本文件:chkmem,输入参数用户名称,最小占用内存
ShowProcs () {
typeset -i M_SIZE
typeset -i K_SIZE
[ $1 ] {
echo "No Procs Found!"
return
}
while [ $1 ]
do
if [ $1 != "PID" ]
then
if [ $3 -ge "$MEMORY" ]
then
K_SIZE=$3*4
M_SIZE=K_SIZE/1024
echo "PID=$1 exec=$5 SZ=$K_SIZE(K), $M_SIZE(M)" awk '{printf("%-18s%-20s%-20s%-20s\n", $1, $2, $3, $4);}'
fi
fi
shift 5
done
}
typeset -i MEMORY
echo "Shell for Checking Process' memory used"
echo "Input User:\c"
read USER
echo "Input Used Memory:(?M)\c"
read MEMORY
MEMORY=$MEMORY*256
PROCS="`ps -lu $USER awk '{print $4, $5, $10, $12, $14}'`"
ShowProcs $PROCS
Q: 应用服务引起oracle数据库的分布锁
A: 这个问题比较常见,但诱因特别多,比如应用逻辑不严谨,数据库资源不够,tpbegin()超时等等。可以加一个参数DISTRIBUTED_LOCK_TIMEOUT来自动解锁,同时在OPENINFO中加DbgFl=15来提供XA的trace信息让我们分析。 这个问题的后继处理可以直接和bea公司的800中心直接联系;
Q: 网络不稳定
A: 这个问题比较的无解,因为在TCP/IP协议上,如果没有接到IP报文,有可能是网络断,也有可能是对方没发送(比如营业员离开,或关机)。建议加一个KeepAlive的参数,定期"PING"一下对方,检验是否在存活。
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参数 " ... -T 10 ..."会在第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)大数据量传输的应用建议不要在三层应用中实现