参考手册 1
1 文档说明 3
1.1 编写目的 3
1.2 文档范围 3
1.3 名词定义 3
2 TONGLINK/Q安装 3
2.1 VG、LV、FS准备 3
2.2 用户准备 3
2.3 安装TONGLINK/Q 3
3 环境变量设置 5
4 在HA中的部署 6
5 TLQ配置 8
5.1 服务器节点 8
5.2 客户端代理 9
6 TLQ常用命令 9
1 文档说明
本章将简要地说明该技术文档编写的目的,使用范围。
1.1 编写目的
本文档的目的在于阐述在AIX平台下,如果安装配置TongLink/Q软件,并实现在HA环境下的自动切换启动。
1.2 文档范围
本文档的阅读、使用者为系统管理员。
本文档所使用的系统为:IBM AIX 5
1.3 名词定义
TongLink/Q: 消息中间件TongLINK/Q是基于消息队列或消息传递的消息中间件。它通过提供不同平台上的一致的操作与应用开发接口,方便应用系统的集成与互联互通,主要功能是在应用程序之间提供可靠的消息传送。
2 TongLink/Q安装
2.1 vg、lv、fs准备
在rootvg上建立/TongLink文件系统,大小为2G,lv为lvtonglink
(每个ppsize为64M)
在外接存储上面建立应用vg,例如iaspapapplvg(如果已经有应用vg,则不用重新建立新的vg),然后在该vg上建立/apps/tlq文件系统,大小为4G,lv为lvtlq
2.2 用户准备
建立运行TongLink/Q的用户 tlqadm和组tlqgrp
2.3 安装TongLink/Q
以国际业务影响系统为例:
在/TongLink下解压安装包R_TLQ6.3_AIX5.1.tar.Z
在/TongLink目录下,产生一个license文件和一个软件目录
license文件:TlqLicense
软件目录:TLQ63
/TongLink/TLQ63目录下有以下目录和文件:
drwxr-xr-x 2 tlqadm tlqgrp 256 Nov 05 2007 sndfiles
drwxr-xr-x 2 tlqadm tlqgrp 256 Nov 05 2007 rcvfiles
drwxr-xr-x 4 tlqadm tlqgrp 256 Nov 05 2007 java
drwxr-xr-x 2 tlqadm tlqgrp 256 Nov 05 2007 files
drwxr-xr-x 2 tlqadm tlqgrp 256 Nov 05 2007 incl
-rwxr-xr-x 1 tlqadm tlqgrp 767 Nov 05 2007 setp
drwxr-xr-x 9 tlqadm tlqgrp 256 Nov 05 2007 samples
-rw-r--r-- 1 tlqadm tlqgrp 766 Nov 05 2007 readme.txt
drwxr-xr-x 2 tlqadm tlqgrp 256 Nov 05 2007 lib
-rw-r--r-- 1 tlqadm tlqgrp 16992 Nov 05 2007 errormsg.xml
drwxr-xr-x 2 tlqadm tlqgrp 256 Aug 03 13:25 log
drwxr-xr-x 2 tlqadm tlqgrp 256 Aug 03 13:56 etc
drwxr-xr-x 2 tlqadm tlqgrp 4096 Aug 03 20:04 msg
-rwxr----- 1 tlqadm tlqgrp 933 Aug 04 11:04 .profile
drwxr-xr-x 2 tlqadm tlqgrp 4096 Aug 04 11:23 bin
将这个目录下的:etc log msg sndfiles rcvfiles files这6个目录复制到/apps/tlq下
这几个目录里面的内容,在HA切换,在备机启动TLQ时,需要调用里面的内容,所以要将这几个目录里面的内容复制到共享存储上。
[HQs_IASP_A:root]:/apps/tlq> ls -ltr
total 8
drwxr-xr-x 2 root system 256 Aug 04 09:46 lost+found
drwxr-xr-x 2 tlqadm tlqgrp 256 Aug 04 10:33 etc
drwxr-xr-x 2 tlqadm tlqgrp 256 Aug 04 10:35 sndfiles
drwxr-xr-x 2 tlqadm tlqgrp 256 Aug 04 10:35 rcvfiles
drwxr-xr-x 2 tlqadm tlqgrp 256 Aug 04 10:36 log
drwxr-xr-x 2 tlqadm tlqgrp 256 Aug 04 11:05 files
drwxr-xr-x 2 tlqadm tlqgrp 4096 Aug 04 15:43 msg
将/TongLink目录和/apps/tlq目录下的所有文件和目录的属组都改成是tlqadm和tlqgrp
# chown -R tlqadm:tlqgrp /TongLink
# chown -R tlqadm:tlqgrp /apps/tlq
3 环境变量设置
编辑/TongLink/TLQ63/.profile文件
将以下内容复制到/TongLink/TLQ63/.profile中去
TLQHOMEDIR=/TongLink/TLQ63; export TLQHOMEDIR
TLQCONFDIR=/apps/tlq/etc; export TLQCONFDIR
TLQLOGDIR=/apps/tlq/log; export TLQLOGDIR
TLQFILESDIR=/apps/tlq/files; export TLQFILESDIR
TLQSNDFILESDIR=/apps/tlq/sndfiles; export TLQSNDFILESDIR
TLQRCVFILESDIR=/apps/tlq/rcvfiles; export TLQRCVFILESDIR
TLQMSGDIR=/apps/tlq/msg; export TLQMSGDIR
PATH=$PATH:$TLQHOMEDIR/bin:$TLQHOMEDIR/java/bin:
export PATH
CLASSPATH=$TLQHOMEDIR/java/lib/tlclient.jar:$TLQHOMEDIR/java/lib/tlqadapter.jar:$TLQHOMEDIR/java/lib:$TLQHOMEDIR/samples/Jni:.:$CLASSPATH
export CLASSPATH
LD_LIBRARY_PATH=$TLQHOMEDIR/lib #for DEC SCO SUN LINUX
export LD_LIBRARY_PATH
LIBPATH=$TLQHOMEDIR/lib #for IBM
export LIBPATH
SHLIB_PATH=$TLQHOMEDIR/lib #for HP
export SHLIB_PATH
export PATH
if [ -s "$MAIL" ] # This is at Shell startup. In normal
then echo "$MAILMSG" # operation, the Shell checks
fi # periodically.
【说明】:
TLQMSGDIR指向/app/tlq/msg #此目录存放TLQ内存在硬盘上的映象。注意(此目录中所有文件请不要删除,如果删除了,消息队列里的消息就会丢了)。
TLQCONFDIR指向/app/tlq/etc #此目录存放TLQ的所有配置文件。
TLQLOGDIR指向/app/tlq/log #此目录存放TLQ的日志文件
TLQSNDFILESDIR指向/app/tlq/sndfiles #此目录存放TLQ的发送的文文件。
TLQRCVFILESDIR指向/app/tlq/rcvfiles #此目录存放TLQ接收的文件。
4 在HA中的部署
TLQ在HA中的结构:
将TongLink/Q的启动脚本保存为tlq_start.sh
#tlq_start.sh
su - tlq "-c sleep 1;tlq"
tlqready=`su - tlq "-c tlqready 30"`
if [ "$tlqready" = "y" ]
then
banner "TLQOK"
else
echo "tlq start failed in 30 second,please check TongLINK.sys"
fi
【说明】:
1 tlqready 为tlq的应用程序。需要在相应的平台编译完成后,将此执行文件放到/TongLink/TLQ63/bin目录下。因为一般的系统分区中,并没有安装gcc编译环境,所以可以请厂商来提供编译后的tlqready.c文件。
2 tlqready 为检测TLQ是否完全启动。后面的跟的是等待TLQ启动的时间,单位为秒。请根据实际环境,设置相应的值。
将TongLink/Q的停止脚本保存为tlq_stop.sh
#tlq_stop.sh
su - tlq "-c sleep 1;tlq -cstop -y"
while[`ps -ef | grep -E "changepwd|dispshm|tlqclibroker|tlqd|tlqerr|tlqmng|tlqmoni|tlqpsbroker|tlqstat|tlqsupervise"|grep -c -v grep` -gt 0 ]do
echo "tlq still alive"
sleep 1
num=`expr $num + 1`
if [ $num -eq 20 ]
then
su - tlq "-c sleep 1;tlq -cabort -y"
fi
if [ $num -gt 30 ]
then
break
fi
done
并在/etc/app/appstop.sh中添加如下一行:
./tlq_stop.sh #stop TLQ
5 TLQ配置
5.1 服务器节点
服务器节点信息存储在TongUser.conf文件中,配置文件由多个小节组成,每个小节有多个配置项,关于配置项的详细信息请查看TLQ的相关文档。现介绍几个常用的配置项。
【system系统小节】:
ProgramNum = 20 # 程序记录数限制
ProcessNum = 50 # 进程记录数限制
TcliProcNum = 100 # 客户端连接数限制
ListenPort = 10240 # TLQ监听端口
ClientFlag = 1 # 是否支持客户端,取值为1/0
当客户端程序并发量比较高时应把TcliProcNum的值调高,但调高这个值再重启tlq,此时可能出现无法启动失败的异常,日志文件/apps/tlq/log/TongLink.sys记录错误信息如下:
T_QueCreat:T_Mutex_Create error, [/soft/tlq/TLQ63/etc]-7
T_QueCreat [QIN] error, [/soft/tlq/TLQ63/etc]-73
原因是系统信号量不够,需要增加系统信号量,系统信号量配置做如下调整(root用户执行):
sysctl -w kernel.sem="1000 2048000 64 2048"
之后,系统就会将kernel.sem调整为500 512000 64 2048,如需启动时自动应用,可在/etc/sysctl.conf增加:
kernel.sem = 1000 2048000 64 2048
其他项的取值可采用默认值或根据需要调整。
【program】程序小节:
Program小节由多个ProgramRecord子节点组成,每个ProgramRecord子节点的组成如下所示:
[ProgramRecord] #
ProgramNo = 100 # 程序编号
ProgramFlag = Trig # 程序类型
ProgramMaxNum = 10 # 程序最多运行进程数
ProgramPara = /apps/iasp/demo # 启动控制参数
ProgramName = TranProg # 可执行程序名称
程序编号必须为100以上的整数,程序类型可取值为Trig触发程序,Period周期程序,Time定时程序和Client发送方程序。
ProgramPara指定传入到程序中的第二个参数,第一个参数为程序编号。
ProgramName指定的程序在PATH环境变量包含的目录下,一般放在/TongLink/TLQ63/bin目录下。
【RecvQueue】接收队列小节:
RecvQueue小节由多个RecvQueueRecord字节点组成,每个子节点的组成如下所示:
[RecvQueueRecord] #
QueRcvName = RcvQ1 # 接收队列名
QueRecordNum = 100 # 队列中消息记录数限制
QueSpaceSize = 1000 # 队列中消息可用空间限制,单位为 K bytes
QueSaveMode = Disk # 存储模式
QuePrgNo = 100 # 对应程序编号
ClusterQueueFlag = 0 # 是集群队列
QuePrgNo指定的程序编号必须是在程序小节中存在的编号,或者是-1,如果程序的启动方式是Trig,那么每次有消息到达队列,就会启动对应的程序。
5.2 客户端代理
客户端代理的配置文件为TongCliBroker.Conf,它只有一个小节,如下所示
[CliBrokerSystem] # 系统小节
JndiRecNum = 10 # Jndi记录数限制
TaskNum = 1 # 并发任务数限制
SessionPerTaskNum = 100 # 每个任务处理session数限制
MemBlocksNum = 1 # 每个session用于blob数据成员的内存块数限制
MemBlockSize = 10240 # 每个内存块大小
BlockSize = 10 # socket传输层数据包的最大长度
ClientsValve = 10 # 客户端阀值
ListenQueueNum = 10 # Listen socket的等待队列的大小
DebugLevel = 3 # 调试日志级别
DebugMode = 0x03000fff # 调试日志模式,完整值=0x03000fff
DeadTime = 600 # 线路最大空闲时间
当客户端并发量很高时,必须将SessionPerTaskNum的值调高以防止错误。
6 TLQ常用命令
1 启动停止:
启动:tlq -cstart
停止:tlq -cstop
2 查看状态:
tlqstat
tlqstat -Z TIMES. -----Set rotation display times, -1 means forever
tlqstat -R TIMEV. -----Set rotation display interval, default is 3s
tlqstat -O FILENAME. -----Set output, default is standard output
tlqstat -S -----Set only show summary, default is to show all data
tlqstat -C DestName RouteName-----Set route path
tlqstat -a [0|1]. -----Show snd buf, 0: only head, 1: include data.
tlqstat -b [0|1]. -----Show rcv buf, 0: only head, 1: include data.
tlqstat -c -----Show configure type.
tlqstat -d -----Show all snd q para.
tlqstat -e -----Show all rcv q para.
tlqstat -f -----Show the PrgMsgTbl.
tlqstat -g -----Show the PrgRunTbl.
tlqstat -h -----Show the PrgRgsTbl.
tlqstat -i -----Show route table.
tlqstat -j -----Show qin, qout & qaux.
tlqstat -k -----Show rcv history info.
tlqstat -l -----Show connect info to adj node.
tlqstat -m NAME. -----Show connectted adj node with the specified NAME.
tlqstat -r NAME. -----Show rcv q with the specified NAME.
tlqstat -s NAME. -----Show snd q with the specified NAME.
tlqstat -t -----Show the trans info.
tlqstat -u [0|1]. -----Show the topic table, 0: only head, 1: include subscribe data.
tlqstat -v NAME. -----Show msg getor info of the rcv q with the specified NAME.
tlqstat -w NAME. -----Show snd win with the specified NAME.
tlqstat -x -----Show cluster RealDest.
tlqstat -1 -----Show up node tbl.
tlqstat -2 -----Show dn node tbl.
tlqstat -3 -----Show sip tbl.
tlqstat -4 -----Show anp tbl.
tlqstat -5 -----Show default que.
本文来自CSDN博客,转载请标明出处:http://blog.csdn.net/daniel3418/archive/2010/06/20/5682077.aspx