AIX平台TONGLINK/Q安装与配置

来源:互联网 发布:魔女宅急便 知乎 编辑:程序博客网 时间:2024/05/02 02:53

AIX平台TONGLINK/Q安装与配置 
参考手册 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.