tuxedo日常维护手册
变更记录
目录
第一章安装步骤
1.1安装前的准备工作
1.1.1创建tuxedo软件对应用户
如已创建了单独的用户,则不需再另建用户,一般新建的用户的主目录在/opt(空闲空间较多)下。建议在用户下单独安装,不与其他用户共享。
useradd -d 目录-m 用户名
passwd 用户名
注:1、设置密码位数不少于8位,2、密码中必须包含字母(大小写)、数字和特殊字符中的两种。
chown –R 用户名目录
su –用户名
1.1.2上传安装介质包
将安装介质上传至服务器,根据操作系统选择相应的tuxedo版本。
1.2 软件安装
1.2.1 tuxedo软件安装
1)修改安装介质执行权限
2)运行安装命令
运行./tuxedo111120_64_Linux_01_x86.bin -i console命令开始安装,其中那个-mode=console代表选择字符模式安装
直接回车,到下一步。
3)选择安装种类
输入1,选择全部安装。
4)选择安装目录
选择1回车
输入安装目录,回车
输入2,使用当前设置的目录
5)安装示例
输入y,选择安装示例
6)确认安装
直接回车确认
7)设置tlisten密码
输入tuxedo,确认tuxedo,同一域的机子都使用相同密码,回车
8)安装ssl
输入1,回车。
9)安装完成
tuxedo软件安装完成。
1.2.2 配置环境变量
到tuxedo安装目录下/opt/tuxedo/tuxedo11gR1下,有个tux.env文件,将内容拷贝到该用户根目录下的 .bash_profile文件中,执行source .bash_profile使环境变量生效。
1.2.3 测试
1)复制示例文件
在安装目录下,新建myapp目录,将/opt/tuxedo/tuxedo11gR1/samples/atmi/simpapp 中的所有文件拷贝到myapp目录下。
2)修改ubb文件
myapp目录下有ubbsimple,拷贝为ubb文件进行修改
修改IPCKEY、APPDIR、TUXCONFIG、TUXDIR、HOSTNAME值对应实际环境值。
3)设置TUXCONFIG环境变量
在用户主目录下修改.bash_profile文件,将TUXCONFIG环境变量加入。执行source .bash_profile使环境变量生效。
4)编译客户端
在myapp目录下通过命令buildclient -o simpcl -f simpcl.c编译客户端程序。
5)编译服务端
在myapp目录下通过命令buildserver -o simpserv -f simpserv.c -s TOUPPER编译服务端程序。
6)加载ubb
通过tmloadcf -y ubb生成TUXCONFIG控制文件,如果服务已经启动,先停服务tmshutdown –y,然后再执行tmloadcf -y ubb。
7)执行客户端程序测试tuxedo服务
tmboot –y启动tuxedo服务后,执行./simpcl 字符串,将返回字符串的大写字符,如果有返回,则tuxedo服务环境已搭建好。
第二章系统检查
2.1 tuxedo 日志检查
检查tuxedo日志,查看日志文件内容,检查有无Tuxedo系统出错记录;检查有无服务异常错误记录;检查有无服务被重起记录;对发现的异常记录进行分析;若无异常情况可清除无用的历史日志。tuxedo日志默认在appdir目录下。日志名ULOG开头。也可设置输出目录。
2.2 查看tuxedo版本
通过tmadmin –v命令查看tuxedo版本。
2.3 tuxedo正常启动和停止
启动:tmboot,停止:tmshutdown
-y 所有服务被启动/停止
-s svrname 只启动/停止制定服务名的服务,例如simpserv
-g grpname 只启动/停止属于制定组名的服务,例如GROUP1
-i svrid 只启动/停止制定ServID的服务,例如1
-A 只启动/停止Tuxedo管理服务,例如BBL
2.4 控制台进入和退出
进入控制台命令:tmadmin,退出控制台命令:q或quit。
2.5 通过控制台查看系统状态
2.5.1 查看服务运行情况
tuxedo服务启动后(tmboot -y),进入控制台(tmadmin),输入psr,可查看到所有的服务信息。
psr [-m machine] [-g groupname] [-i srvid] [-q qaddress]
-m machine LMID为 machine的所有服务进程
-g groupname 组名为groupname的所有服务进程
-I srvid SRVID为srvid的服务进程
-q qaddress 消息队列为qaddress的所有SERVERS查看server的信息
结果说明:
1. Prog Name:服务的可执行文件名
2. Queue Name:服务连接的队列名
3. Grp Name:组名
4. ID:服务的数字id
5. RqDone:服务已经处理的请求数(该SERVER的所有service的负载因子总和)
6. Load Done:服务处理的全部请求的参数和
7. Current Service:如果当前没有service被调用,则为IDLE
2.5.2 查看交易运行情况
tuxedo服务启动后(tmboot -y),进入控制台(tmadmin),输入psc,可查看到所有的交易信息。
psc [-m machine] [-g groupname] [-I srvid] [-q qaddress]
[-s service] [-a {0|1|2}]
-s service 显示名为sevice的service信息
-a {0|1|2} 显示系统的隐含的service
其他参数与psr命令相同
1. Service Name :服务名
2. Routine Name :函数名(采用TUXEDO服务的别名机制,一个函数可以对应多个服务名)
3. Prog Name :service 所在的SERVER名
4. Grp Name :组名
5. ID :server的ID号
6. Machine :server所在的LMID
7. # Done :service被调用的次数
8. Status :service的状态。AVAIL表示可用
2.5.3 查看队列信息
tuxedo服务启动后(tmboot -y),进入控制台(tmadmin),输入pq,可查看到所有的队列信息。查看交易高峰期队列中消息的增加情况,确定是否存在阻塞现象,是否需要对服务数进行调整。
1. Prog Name :队列连接的服务的可执行文件名
2. Queue Name :字符队列名,是RQADDR参数或一个随机值
3. #Serve :连接的服务数
4. Wk Queued :当前队列的所有请求的参数和
5. #Queued :实际请求数
6. Ave.Len :平均队列长度
7. Machine :队列所在机器的LMID
2.5.4 查看客户端信息
tuxedo服务启动后(tmboot -y),进入控制台(tmadmin),输入pclt,可查看到客户端信息。
pclt [-m machine] [-u username] [-c ctlname]
-m machine 显示LMID号为machine上的客户端连接
-u username 显示用户名为username 的客户端连接
-c ctlname 显示用户进程为ctlname的客户端连接
1. LMID:已经登录的客户端机器的LMID
2. User Name:用户名,由tpinit()提供的
3. Client Name:客户端名,由tpinit()提供的
4. Time:客户端连接后经过的时间
5. Status:客户端状态
IDLE——表示客户端目前没有任何交易在工作
IDLET——表示客户端启动了一个交易
BUSY——表示客户端在工作中
BUSYT——表示客户端正在交易控制下工作
6. Bgn/Cmmt/Abrt:启动/提交/中断的交易数
2.5.5 sh命令直接执行控制台命令
执行echo pclt |tmadmin、echo pq?|tmadmin |grep machine等命令直接输出结果。
2.6 查看服务器运行情况
检查应用的服务的运行情况,用“ps aux|grep server名”查看进程相关信息,如运行时间、占用内存大小等。
2.7 日常其他命令
2.7.1 域控制台的进入和退出
进入控制台命令:dmadmin ,退出控制台命令:q或quit
2.7.2 手动连接域
co –d DMTLOG_CRM_IAS_I
注:本机域名DMTLOG_CRM_IAS_I在ubbdomain中设置
2.7.3 查看域网关的连接情况
pd -d TOM_CRM_3701
2.7.4 对ubb和dm文件做语法检查
tmloadcf –n ubb,只做语法检查,不生成TUXCONFIG文件。
dmloadcf –n dm,只做语法检查,不生成DMXCONFIG文件。
2.7.5 反编译tuxconfig和dmxconfig 文件
tmunloadcf?查看当前TUXCONFIG中的ubb内容,dmunloadcf >>ubb.tmp。
dmunloadcf?查看当前DMXCONFIG中的dm内容,dmunloadcf >>dm.tmp。
第三章tuxedo故障处理
6.1 Can’t attach BBL
tmshutdown –y提示“Can’t attach BBL”。
处理步骤:
1、杀所有TUXEDO进程
2、执行tmipcrm -y杀ipc资源
3、如果还是没有杀掉,通过ipcrm命令杀资源,新建脚本rmrpc.sh,执行rmrpc.sh 用户
名
#!/bin/sh
muipcs=`ipcs -m|grep $1|awk '{print $2}'`
for iq in $muipcs
do
ipcrm -m $iq
done
muipcs=`ipcs -q|grep $1|awk '{print $2}'`
for iq in $muipcs
do
ipcrm -q $iq
done
muipcs=`ipcs -s|grep $1|awk '{print $2}'`
for iq in $muipcs
do
ipcrm -s $iq
done
4、启动tuxedo服务,tmboot -y
6.2 针对日志报错信息处理
1)日志提示“LIBTUX_CAT:1122:ERROR:No space in Bulletin Borad
LIBTUX_CAT:582:ERROR:Unable to register,registry table full.”
处理过程:
1、是否一个server中包含的service太多
2、提高(UBB)配置文件中MAXACCESS、MAXSERVERS和MAXSERVICES参数
3、检查该交易是否死循环,超时等错误
2)日志提示“LIBTUX_CAT:577: ERROR: Unable to register because the slot is already
owned by another process”
1、重复打开tmadmin管理,在重复打开的tmadmin中个别命令不能使用,通过help命令
可以看到当前可以使用的命令。
3)日志提示?“ERROR: File transfer creat failed, file=/var/tmp/TUXAAAa200441,
errnogtrid x0 x47fb1049 x16e: WSNAT_CAT:1042: ERROR: tpcall() call failed, tperrno = 7”
1、检查临时目录的权限是否允许读写和剩余空间是否足够。
4)日志提示“LIBTUX_CAT:248: ERROR: System init function failed, Uunixerr = : msgget:
No space left on device”
1、达到OS系统最大消息上限。使用ipcs -q|wc -l 查看当时建立得消息队列。使用ipcs
-l 查看系统消息上限。