本文主要介绍WebSphere MQ 7.0(x86 platform)在Red Hat Enterprise Linux V4.0上面的安装与简单配置。MQ在安装之前同样要进行软硬件环境的检查,以满足其运行的最低要求。对于目前主流的计算机配置来说这些需求都是没有任何问题的。这里我就不做过多的介绍,想要了解具体的细节请参考官方文档,下载地址:http://www.ibm.com/developerworks/cn/websphere/zones/businessintegration/roadmaps/wmq/
一. 创建用户及用户组
[root@localhost ~]# mkdir /var/mqm
[root@localhost ~]# groupadd mqm
[root@localhost ~]# useradd -g mqm -d /var/mqm mqm
[root@localhost ~]# passwd mqm
mqm的home目录当然也可以另外设置,不过IBM建议我们把mqm的home目录设置为/var/mqm。
二. 创建MQ文件系统
[root@localhost ~]# mkdir /opt/mqm
[root@localhost ~]# mkdir -p /var/mqm/{log,errors,qmgrs}
[root@localhost ~]# chown mqm:mqm /opt/mqm
[root@localhost ~]# chown -R mqm:mqm /var/mqm
IBM强烈的建议我们将MQ软件安装在/opt/mqm目录下,业务数据则是存放在/var/mqm中,如果我们要安装GSKit,那么也必须安装在默认目录下。然而这就涉及到一个问题了,一般来说我们的 / 分区一般不是很大,如果数据量很大的话必然会因存储空间不够而出问题。但不用着急,我们有以下两种方法解决此问题:
1. 创建一个新的文件系统,并mount到 /opt/mqm
2. 在一个大的分区上建立目录,并符号链接到 /opt/mqm mkdir /big/mqm ln -s /big/mqm /opt/mqm
3. 其他的默认目录可以用类似的方法突破空间不足的限制,但是要注意不论选择那一种方法都必须在安装MQ之前配置完成
三. 提高mqm用户shell限制
1. 编辑 /etc/sysctl.conf,修改以下参数值,编辑完成以后运行sysctl -p使其立即生效
kernel.msgmni = 1024
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 500 256000 250 1024
fs.file-max = 32768
net.ipv4.tcp_keepalive_time = 300
2. 编辑 /etc/security/limits.conf,修改以下参数值
mqm soft nproc 4090
mqm hard nproc 16384
mqm soft nofile 10240
mqm hard nofile 65536
3. 编辑 /var/mqm/.bash_profile,修改以下参数
PATH=$PATH:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin
到这一步准备工作已经完成了,接下来的工作就是安装MQ组件,如果是安装MQ服务器的话最少需要安装Runtime和Server两个组件,其他的组件根据需要选择。
四. 安装MQ服务端
安装MQ服务端需要以root用户登录,解压安装包(tar -zvxf CZ50AML.tar.gz),安装包可以直接到官网上下载:http://www-01.ibm.com/software/integration/wmq/v7/ 解压完成后进入解压目录运行以下命令:
[root@localhost u01]#. mqlicense.sh -text_only/-accept --test_only选项是作为测试使用,只有90天的试用期。而accept选项则需要购买license。
[root@localhost u01]# rpm -ivh MQSeriesRuntime-7.0.1-0.i386.rpm MQSeriesServer-7.0.1-0.i386.rpm
到这一步基本的服务就安装完成了,接下来可以根据自己的需求选择其他的组件安装,比如安装中文包,JAVA包等等,每个包所支持的功能请查阅相应的文档,这里就不再一一介绍了。以下是我在机器上安装的组件的详情,其中一些组件又相互依存关系,安装的时候注意顺序,或者直接全部安装就可以了。
[root@localhost u01]# rpm -qa |grep MQ
MQSeriesConfig-7.0.1-0
MQSeriesSamples-7.0.1-0
MQSeriesServer-7.0.1-0
MQSeriesJRE-7.0.1-0
MQSeriesMsg_Zh_CN-7.0.1-0
MQSeriesEclipseSDK33-7.0.1-0
MQSeriesSDK-7.0.1-0
MQSeriesRuntime-7.0.1-0
五. 补丁安装
任何系统都难免有系统漏洞(bug),这需要安装软件供应商提供的补丁来修复。IBM建议我们在安装玩软件以后首先打补丁,当然已经配置了队列管理器等对象以后需要停止所有的队列管理器及相关进程。系统补丁可以直接在官网上下,步骤也很简单解压后到目录下运行amqicsdn.exe手动安装。安装过程十分简单:选择备份文件夹,开始安装->完成。补丁安装完成后,在WebShere MQ安装目录下会出现补丁目录,如CSD06,他实际上是备份文件夹,存放补丁安装前的相应文件。可以使用dspmqver命令查询当前版本号及补丁号。
六. 验证安装
安装完毕了,接下来该是我们验收成果的时候。创建队列管理QM1,QM2,让他们之间相互通信,如果成功则说明安装成功,当然有条件可以配置本地队列和远程队列之间的通信。接下来我们配置一个Sender(QM1)—Receiver(QM2)的通道配置来验证我们的安装,步骤如下:
[mqm@localhost ~]$ crtmqm QM1
[mqm@localhost ~]$ strmqm QM1
[mqm@localhost ~]$ runmqsc QM1
DEFINE QREMOTE (QR) +
RNAME (QL) +
RQMNAME (QM2) +
XMITQ (QX) +
REPLACE
DEFINE QLOCAL (QX) +
USAGE (XMITQ) +
REPLACE
DEFINE CHANNEL (C) +
CHLTYPE (SDR) +
TRPTYPE (TCP) +
CONNAME ('127.0.0.1 (1416)') +
XMITQ (QX) +
REPLACE
END
[mqm@localhost ~]$ crtmqm QM2
[mqm@localhost ~]$ strmqm QM2
[mqm@localhost ~]$ runmqsc QM2
DEFINE QLOCAL (QL) +
REPLACE
DEFINE CHANNEL (C) +
CHLTYPE (RCVR) +
TRPTYPE (TCP) +
REPLACE
END
[mqm@localhost ~]$ runmqlsr -m QM2 -t tcp -p 1416 --另外开一个终端运行监听
[mqm@localhost ~]$ amqsput QR QM1
Sample AMQSPUT0 start
target queue is QR
HUANG
TING
GUANG
Sample AMQSPUT0 end
[mqm@localhost ~]$ amqsget QL QM2
Sample AMQSGET0 start
message <HUANG>
message <TING >
message <GUANG >
no more messages
Sample AMQSGET0 end
接收队列QM2.QL能正常接收到发送队列QM1.QL发送的消息,表明我们的安装时正确的,现在可以根据自己的应用配置相应的对象了。配置完成以后可以进行一次备份。具体的方法请参考官方文档。