下载地址:https://www.ibm.com/developerworks/cn/downloads/ws/wmq/

这里下载开发版


环境Centos7.4 x64


1、安装前准备

[root@236 ~]# mkdir mq                                                                      #新建一个安装目录
[root@236 ~]# tar -xzf mqadv_dev75_linux_x86-64.tar.gz -C mq                                #解压
[root@236 ~]# ls mq
copyright                            MQSeriesFTAgent-7.5.0-2.x86_64.rpm    MQSeriesMan-7.5.0-2.x86_64.rpm     MQSeriesMsg_ko-7.5.0-2.x86_64.rpm     MQSeriesSDK-7.5.0-2.x86_64.rpm
crtmqpkg                             MQSeriesFTBase-7.5.0-2.x86_64.rpm     MQSeriesMsg_cs-7.5.0-2.x86_64.rpm  MQSeriesMsg_pl-7.5.0-2.x86_64.rpm     MQSeriesServer-7.5.0-2.x86_64.rpm
lap                                  MQSeriesFTLogger-7.5.0-2.x86_64.rpm   MQSeriesMsg_de-7.5.0-2.x86_64.rpm  MQSeriesMsg_pt-7.5.0-2.x86_64.rpm     MQSeriesXRClients-7.5.0-2.x86_64.rpm
licenses                             MQSeriesFTService-7.5.0-2.x86_64.rpm  MQSeriesMsg_es-7.5.0-2.x86_64.rpm  MQSeriesMsg_ru-7.5.0-2.x86_64.rpm     MQSeriesXRService-7.5.0-2.x86_64.rpm
mqlicense.sh                         MQSeriesFTTools-7.5.0-2.x86_64.rpm    MQSeriesMsg_fr-7.5.0-2.x86_64.rpm  MQSeriesMsg_Zh_CN-7.5.0-2.x86_64.rpm  PreReqs
MQSeriesAMS-7.5.0-2.x86_64.rpm       MQSeriesGSKit-7.5.0-2.x86_64.rpm      MQSeriesMsg_hu-7.5.0-2.x86_64.rpm  MQSeriesMsg_Zh_TW-7.5.0-2.x86_64.rpm  READMEs
MQSeriesClient-7.5.0-2.x86_64.rpm    MQSeriesJava-7.5.0-2.x86_64.rpm       MQSeriesMsg_it-7.5.0-2.x86_64.rpm  MQSeriesRuntime-7.5.0-2.x86_64.rpm    repackage
MQSeriesExplorer-7.5.0-2.x86_64.rpm  MQSeriesJRE-7.5.0-2.x86_64.rpm        MQSeriesMsg_ja-7.5.0-2.x86_64.rpm  MQSeriesSamples-7.5.0-2.x86_64.rpm


运行许可,选择1同意

./mqlicense.sh


安装MQ Server

[root@236 mq]# rpm -ivh MQSeriesRuntime-7.5.0-2.x86_64.rpm                                                                 #安装MQ Runtime
Preparing...                          ################################# [100%]
Creating group mqm
Creating user mqm
Updating / installing...
   1:MQSeriesRuntime-7.5.0-2          ################################# [100%]
   
   
[root@236 mq]# rpm -ivh MQSeriesSamples-7.5.0-2.x86_64.rpm                                                                                         ##安装MQ Samples
Preparing...                          ################################# [100%]
Updating / installing...
   1:MQSeriesSamples-7.5.0-2          ################################# [100%]
   
   
[root@236 mq]# rpm -ivh MQSeriesServer-7.5.0-2.x86_64.rpm                                                                     #安装MQ server
Preparing...                          ################################# [100%]
Updating / installing...
   1:MQSeriesServer-7.5.0-2           ################################# [100%]

After the installation has completed, run the '/opt/mqm/bin/mqconfig'
command, using the 'mqm' user ID.

For example, execute the following statement when running as the 'root' user:

    su mqm -c "/opt/mqm/bin/mqconfig"

The 'mqconfig' command validates that the system configuration satisfies the
requirements for WebSphere MQ, and ensures that the settings for the 'mqm'
user ID are suitably configured.  Other WebSphere MQ administrators in the
'mqm' group can run this command to ensure their user limits are also
properly configured to use WebSphere MQ.

If 'mqconfig' indicates that any of the requirements have not been met,
consult the installation section within the WebSphere MQ Information Center
for details about how to configure the system and user limits.

然后根据提示,执行命令去检查环境是否允许


第一次检查,提示缺少bc

[root@236 mq]# su mqm -c "/opt/mqm/bin/mqconfig"
mqconfig: Analyzing CentOS Linux release 7.4.1708 (Core)  settings for
          WebSphere MQ V7.5
mqconfig: The bc program was not found on this system.  Please install bc
          and try running mqconfig again.


安装bc

[root@236 mq]# yum install -y bc


第二次检查

1.png


有几个fail的需要解决,参考文档:https://www.ibm.com/support/knowledgecenter/en/SSFKSJ_9.0.0/com.ibm.mq.ins.doc/q008550_.htm

修改内核参数

编辑/sysctl.conf ,添加下列配置

[root@236 mq]# vim /etc/sysctl.conf 


kernel.sem = 500 256000 250 1024

net.ipv4.tcp_keepalive_time = 300

fs.file-max = 524288


写入配置

[root@236 mq]# sysctl -p


第三次检查

2.png


还剩2个文件相关的需要解决

编辑limit.conf

[root@236 mq]# vim /etc/security/limits.conf

添加两行

mqm              hard  nofile     10240
mqm              soft  nofile     10240


第四次检查通过

3.png


修改环境变量

由于mq默认安装在/opt/mqm目录,所以安装完成后会找不到mq相关命令,需要配置环境变量才能找到

vim /etc/profile     #添加下面一行

PATH=/opt/mqm/bin:/opt/mqm/samp/bin/:$PATH


安装完成


2、启动实例

切换到mqm用户启动

[root@236 mq]# su mqm
bash-4.2$


创建默认实例

bash-4.2$ crtmqm -q oe
WebSphere MQ queue manager created.
Directory '/var/mqm/qmgrs/oe' created.
The queue manager is associated with installation 'Installation1'.
Creating or replacing default objects for queue manager 'oe'.
Default objects statistics : 74 created. 0 replaced. 0 failed.
Completing setup.
Setup completed.



查看实例,这里状态是ended的

bash-4.2$ dspmq
QMNAME(oe)                                                STATUS(Ended immediately)


启动实例

bash-4.2$ strmqm oe
WebSphere MQ queue manager 'oe' starting.
The queue manager is associated with installation 'Installation1'.
5 log records accessed on queue manager 'oe' during the log replay phase.
Log replay for queue manager 'oe' complete.
Transaction manager state recovered for queue manager 'oe'.
WebSphere MQ queue manager 'oe' started using V7.5.0.2.


创建队列一个名为test的队列

bash-4.2$ runmqsc oe                                                    #进入队列
5724-H72 (C) Copyright IBM Corp. 1994, 2011.  ALL RIGHTS RESERVED.
Starting MQSC for queue manager oe.


define qlocal(test)                                                        #定义队列test
     1 : define qlocal(test)
AMQ8006: WebSphere MQ queue created.
end
     2 : end                                                        #退出
One MQSC command read.
No commands have a syntax error.
All valid MQSC commands were processed.



发送消息测试,报错2085

bash-4.2$ amqsput Test oe
Sample AMQSPUT0 start
target queue is Test
MQOPEN ended with reason code 2085
unable to open queue for output
Sample AMQSPUT0 end


后来查找问题发现这个队列不能为小写的,test队列被转换成大写的了,建议队列名设置为大写的,重新发送消息测试,连续敲两下回车表示输入完成

bash-4.2$ amqsput TEST oe
Sample AMQSPUT0 start
target queue is TEST
hello world!

Sample AMQSPUT0 end


接收消息,接受成功

bash-4.2$ amqsget TEST oe
Sample AMQSGET0 start
message <hello world!>


启动端口监听

bash-4.2$ runmqlsr -t tcp -p 2424 -m oe &
[1] 5067
bash-4.2$ 5724-H72 (C) Copyright IBM Corp. 1994, 2011.  ALL RIGHTS RESERVED.


启动成功

bash-4.2$ netstat -tpln | grep 2424
(Not all processes could be identified, non-owned process info
 will not be shown, you would have to be root to see it all.)
tcp6       0      0 :::2424                 :::*                    LISTEN      5067/runmqlsr