WebSphere MQ支持的UNIX平台有AIX、Linux、Solaris和HP-UX。由于篇幅有限,本文主要对AIX和HP-UX平台的安装步骤进行描述。另外HP-UX平台有PA-RISC平台和IA64平台,目前IA64平台比较流行,所以本篇文章仅以HP-UX IA64平台上安装Websphere MQ 6.0为例,结合个人项目经验,详细描述产品安装和配置的全过程,并针对在HP-UX 11.31平台上的安装注意事项进行了重点说明。
安装WebSphere MQ之前,建议做如下准备:
在安装过程中分为安装准备,调整核心参数(针对HP-UX),安装软件,安装补丁,版本验证。
软件安装完成后进行配置MQ,然后根据项目需要继续完成高可用性模式配置。
2 安装环境
在安装前要检查机器的硬件配置及操作系统是否达到相关要求,否则可能引起安装失败。WebSphere MQ对于机器的环境要求并不高,普通的PC机都可以安装。如果需要有网络通信,则需要有相应的网卡并进行通信配置,比如IP地址。对于单机环境,可以用自环方式配置通信,比如配置虚拟Loopback网卡。
针对操作系统,建议登陆IBM的官方网站确认最新的需求信息,如下链接:
http://www-01.ibm.com/software/integration/wmq/requirements/index.html
在一个项目中笔者在安装MQ v6.0 for HP 11.31的时候只参考安装手册,所以安装无法继续,后来通过查看官方网站的最新系统需求和注意事项,问题得以解决,所以建议详细阅读有关的Note。例如针对MQ v6.0 for HP 11.31的安装系统需求如下URL。
http://www-01.ibm.com/support/docview.wss?rs=171&uid=swg27006792
最近一次在安装MQ v6.0 for Linux Suse v10的遇到了安装成功,但后来无法创建队列管理器问题,后来通过查看如下链接,安装了MQ v6.0 for Linux Suse v10
2.1 硬件需求
IBM:
WebSphere MQ for AIX,Version 6.0可以运行在任何支持AIX5L V5.2或者AIX 5L V5.3的操作系统并能运行64 bit程序的IBM或其他厂商的服务器。
HP:
WebSphere MQ for HP-UX,Version 6.0可以运行在任何Intel IA64(IPF) V2以上版本的机器。
2.2 操作系统
支持HP-UX版本:
支持AIX版本:
2.3 通讯协议
2.4 软件安装空间需求
在HP-UX上软件安装在/opt目录下,需要的空间如下
软件组件 空间大小(MB)
WebSphere MQ Server Installation 325
IBM Global Security Kit V7(64-bit) 14
在AIX上软件安装在/usr目录下,需要的空间如下
软件组件 空间大小(MB)
WebSphere MQ Server Installation 325
3 WebSphere MQ安装步骤 3.1 准备工作 3.1.1 创建组和用户
WebSphere MQ产品安装时,需要创建一个mqm组和一个mqm用户,要求mqm用户的主组是mqm。为了方便系统管理,建议创建mqm组和mqm用户时,自定义组ID和用户ID。如果是在高可用环境下,两台服务器创建的mqm组和mqm用户的ID必须要一样。
*注意:建议将root 用户增加到 mqm 组中。
组
组名 组ID 用户
以下是引用片段: mqm 405 root,mqm |
用户
用户名 组ID 主组 组集 主目录 管理员用户
以下是引用片段: mqm 406 mqm mqm /home/mqm false |
3.1.1.1 AIX平台
建议使用如下命令创建mqm组和mqm用户。
以下是引用片段: mkgroup id=405 mqm mkuser id=406 pgrp=mqm groups=mqm home=/home/mqm mqm |
3.1.1.2 HP-UX平台
建议使用如下命令创建mqm组和mqm用户。
创建mqm组
以下是引用片段: #groupadd -g 405 mqm |
创建mqm用户
以下是引用片段: #useradd -u 406 -g mqm -d /home/mqm -m mqm |
3.1.2 创建文件系统
如果MQ环境是单机环境则在本地磁盘创建如下文件系统即可;如果需要做成高可用环境,那么需要在共享磁盘上创建一个共享vg,例如vgmq,本文以创建在vgmq为例。
3.1.2.1 AIX平台
WebSphere MQ产品的安装目录是/usr/mqm,工作目录是/var/mqm,安装目录和工作目录不允许修改。GSkit 必须安装在缺省位置。
在AIX平台的vgmq创建如下lv和文件系统
卷组 设备名 大小 文件系统 属主
以下是引用片段: vgmq /dev/mqmlv 1024M /var/mqm mqm:mqm vgmq /dev/mqmloglv 1024M /var/mqm/log mqm:mqm mklv -y mqmlv -t jfs2 vgmq 1G crfs -v jfs2 -d /dev/mqmlv -m /var/mqm -A yes mount /var/mqm mklv -y mqmloglv -t jfs2 vgmq 1G crfs -v jfs2 -d /dev/mqmloglv -m /var/mqm/log -A yes mount /var/mqm/log |
3.1.2.2 HP-UX平台
WebSphere MQ产品的安装目录是/opt/mqm,工作目录是/var/mqm,安装目录和工作目录不允许修改。GSkit 必须安装在缺省位置。
在HP-UX平台的vgmq创建如下lv和文件系统
卷组 设备名 大小 文件系统 属主
以下是引用片段: vgmq /dev/vgmq/lvmqm 1024M /var/mqm mqm:mqm vgmq /dev/vgmq/lvmqmlog 1024M /var/mqm/log mqm:mqm |
命令参考如下:
以下是引用片段: lvcreate -L 1024 -n lvmqm /dev/vgmq /sbin/mkdir -p -m u=rwx,g=rx,o=rx /var/mqm /usr/sbin/mkfs -F vxfs /dev/vg00/rlvmqm /usr/sbin/mount -F vxfs -e /dev/vg00/lvmqm /var/mqm lvcreate -L 1024 -n lvmqm /dev/vgmq /sbin/mkdir -p -m u=rwx,g=rx,o=rx /var/mqm/log /usr/sbin/mkfs -F vxfs /dev/vg00/rlvmqmlog /usr/sbin/mount -F vxfs -e /dev/vg00/lvmqmlog /var/mqm/log |
3.2 安装WebSphere MQ for AIX 3.2.1 安装准备
使用如下命令:
以下是引用片段: #df –k |
确认下列文件系统已经被mount上:
以下是引用片段: /var/mqm和/var/mqm/log |
3.2.2 安装软件
把WebSphere MQ 6.0 for AIX的介质ftp到服务器上的一个临时目录,例如/tmp/mqm,然后开始安装。如果是tar.Z文件,先用uncompress解压缩Z文件,然后用tar xvf命令节压缩tar文件,使用root用户执行安装。
以下是引用片段: # smitty install_latest |
单击列出以显示软件的输入设备或目录,选择包含安装映像的位置。
使用要安装的软件字段以获取可用文件集的列表,然后选择要安装的文件集。
以下是引用片段: mqm.base mqm.client mqm.server mqm.man.en_US.data mqm.java |
修改ACCEPT new license agreements? Yes。
3.2.3 安装补丁
首先将安装包6.0.1-WS-MQ-AixPPC64-FP0001.tar解包,然后安装
以下是引用片段: #tar -xvf 6.0.1-WS-MQ-AixPPC64-FP0001.tar #cd 6.0.1-WS-MQ-AixPPC64-FP0001 #smitty update_all |
3.3 安装WebSphere MQ for HP-UX 3.3.1 安装准备
使用如下命令:
以下是引用片段: #df –k |
确认下列文件系统已经被mount上:
以下是引用片段: /var/mqm和/var/mqm/log |
3.3.2 调整核心参数
WebSphere MQ使用了semaphores和Shared memory,缺省kernel配置是不足够的,在安装之前需要根据服务器的配置情况增大相应的参数值,下表中为WebSphere MQ推荐的最小配置值。
以下是引用片段: shmmax 536870912 shmseg 1024 shmmni 1024 semaem 16384 semvmx 32767 semmns 16384 semmni 1024 (semmni < semmns) semmnu 16384 semume 256 max_thread_proc 66 maxfiles 10000 maxfiles_lim 10000 nfile 10000 |
注意:核心参数修该完毕后,需要重新启动服务器。
3.3.3 安装软件
把WebSphere MQ 6.0 for HP的介质ftp到服务器上的一个临时目录,例如/tmp/mqm,然后使用root用户开始安装。
首先执行/tmp/mqm/mqlicense.sh,接受license许可,或者执行/tmp/mqm/mqlicense.sh -accept.
如果是HP-UX11.23平台,则可以使用如下方法安装:
以下是引用片段: # swinstall -s /tmp/mqm/p600-100-051021.v11 |
使用空格键选中需要安装的软件,然后在Action菜单中选择Mark for install到上一层菜单中,在Action菜单中选择Install(analysis),选Ok开始安装。
? 如果是在Itanium 的HP-UX11.31平台,需要使用’-x allow_incompatible=true’参数:
#swinstall -s /tmp/mqm/p600-100-051021.v11 -x allow_incompatible=true
如果安装WebSphere MQ组件,选择MQSERIES,然后把光标从Actions移到Install。在安装日志中将看到关于MQ是不兼容的警告信息,请忽略然后选择OK进行安装。
安装完成后,你会发现不能使用MQ命令,这时需要运行如下命令:
以下是引用片段: #swconfig -x allow_incompatible=true MQSERIES |
3.3.4 安装补丁
以下是引用片段: #cd /usr/hpinstall/patch_mq #tar xvf 6.0.2-WS-MQ-HpuxIA64-FP0005.tar.Z |
使用swinstall进行补丁安装。
注意:
如果是HP 11.31平台则需要如下方法进行安装:
使用swinstall安装MQ6.0.1 GA
然后运行如下命令:
以下是引用片段: #swconfig -x allow_incompatible=true MQSERIES |
使用swinstall升级到MQ 6.0.1.1。
使用swinstall升级到MQ6.0.2.3。
3.4 验证WebSpere MQ版本
使用如下命令验证WebSphere MQ产品版本,使用mqm用户登录,然后执行dspmqver命令:
以下是引用片段: #su - mqm $dspmqver |
4 WebSphere MQ配置步骤
在WebSphere MQ的配置过程中,我们使用控制命令(control command)来创建、启动、停止和删除队列管理器。而创建MQ的侦听程序、队列、通道和进程等对象则需要使用MQSC命令。
建议参考《System Administration Guide》和《Script (MQSC) Command Reference》文档。
4.1 创建队列管理器
使用mqm用户登录执行命令:crtmqm -lc -lf 16384 –lp 2 –ls 1 -q QMTEST
其中:lf 表示日志文件大小,单位: 页(4K);
lp表示主日志的数目;
ls表示从日志的数目;
q 表示缺省队列管理器;
QMTEST表示队列管理器名。
4.2 配置MQ监听端口
在文件/etc/services增加如下行(确保1414/tcp尚未被其它应用所占用)。
MQSeries 1414/tcp #for MQ Listener
使用MQSC命令定义侦听程序,例如:
def listener(ltcp) trptype(tcp) control(QMGR) port(1415) replace
注:在AIX平台还可以在/etc/inetd.conf文件中增加如下行来创建MQ的侦听程序。在WebSphere MQ6.0以后版本,我们推荐采用MQSC命令(DEF LISTENER)来创建侦听程序。
MQSeries stream tcp nowait root /opt/mqm/bin/amqcrsta amqcrsta -m QMTEST
4.3 MQ的启动与关闭
停止队列管理器:
endmqm QMTEST
启动队列管理器:
strmqm QMTEST
显示队列管理器状态:
dspmq 显示现有的各个qm的状态
4.4 定义MQ对象
创建队列管理器后,需要在队列管理器里面创建队列通道等对象,我们可以使用MQSC命令创建MQ对象,如下列表所示:
*本地死信队列
def ql(DEADQ) defpsist(yes) maxdepth(20000) replace
*定义接收队列
def ql(XX) defpsist(yes) maxdepth(20000) replace
*设置队列管理器属性
alter qmgr deadq(deadq)
alter qmgr ccsid(819)
*定义传输队列
def ql(TO.QMB) usage(XMITQ) defpsist(YES) maxdepth(500000) trigger trigtype(FIRST) trigdata(QMA.QMB) initq(SYSTEM.CHANNEL.INITQ) replace
*定义远程队列
def qr(QRB) rname(QLB) rqmname(QMB) xmitq(TO.QMB) defpsist(yes) replace
*定义发送通道
def chl(QMA.QMB) chltype(SDR) discint(1800) conname('192.168.2.1(1414)') xmitq(TO.QMB) trptype(tcp) shortrty(10000) shorttmr(30) longtmr(300) longrty(999999999) batchsz(50) replace
*接收通道
def chl(QMB.QMA) chltype(rcvr) trptype(tcp)
使用MQSC命令编写队列管理管理器中所需的对象,然后保存文件,例如crtobj.tst。
然后使用如下命令创建对象,确保队列管理器已经启动,并用mqm用户登录执行:
$runmqsc QMTEST crtobj.log
执行完毕,请检查crtobj.log日志文件,确保没有任何错误信息。
推荐参看上期《WebSphere 中国》的“WebSphere MQ消息通道的配置和维护介绍”中的“附录:MQ对象配置参考”。
5 配置高可用性模式
如果需要把队列管理器配置成高可用模式,有如下注意事项:
1) 在共享卷组(vgmq)中创建/var/mqm和/var/mqm/log文件系统,
2) 在两台服务器上都需要创建mqm组和mqm用户,并且在两台服务器的组ID和用户ID都需要相同。