红联Linux门户
Linux帮助

在SUSE Linux Enterprise下安装IBM MQ

发布时间:2015-04-14 09:37:39来源:linux网站作者:mmkid

由于工作有需要和第三方MQ通信,因为以前没有整过MQ,所以对于我来说很陌生。在网上也查看了一些经验,再加上个人的实践,小总结如下:

MQ的安装包是ISO,所以需要将ISO文件mount到Linux Enterprise的一个目录下面,具体操作如下:

假如你选定的mount目录为根目录下mnt/下面,或者下面你新建一个目录可以mkdir一个目录。我是直接放在mnt目录下面的:

ISO文件放在/home/afe/MQinstall/下面,名字为MQ_6.0_Linux_x86-64.iso 那么可以用命令:

mount -o loop /home/afe/MQinstall/MQ_6.0_Linux_x86-64.iso    /mnt/cd1

这个时候,ISO文件中的rpm文件都出现在了/mnt下面。

备注:使用mount需要root权限。

如果你的安装包是.tar.gz文件,那就可以省略以上一个步骤:直接解压

tar -zxvf    MQ_6.0_Linux_x86-64.tar.gz


接下来步骤如下:

1:创建WebSphere MQ 必需的文件系统,命令如下:

mkdir /opt/mqm # for product code

mkdir /var/mqm # for working data

我从网上看到说MQ安装时候默认的目录就是这两个,意思可以没必要建,但是为了保险还是自己手工建立一下哈。

2:创造MQ用户和用户组,命令如下:

groupadd mqm

useradd -d /var/mqm -g mqm -G mqm mqm

passwd mqm # change password to "password"

只有把mqm密码改了,才能使以上生效。

3:为mqm用户组添加root组

cd /etc

vi group

修改 mqm:!:1007:mqm ? mqm:!:1007:mqm,root

这里的gid要依据各个系统的建立用户设定而为。我的是1007

4:调整系统参数(视需要而定)

修改最大共享内存,命令如下:

cat /proc/sys/kernel/shmmax

echo 268435456 >/proc/sys/kernel/shmmax

修改最大文件句柄,命令如下:

cat /proc/sys/fs/file-max

echo 32768 >/proc/sys/fs/file-max

如果自己系统比这个大,没必要改。

5:转到WebSphere MQ解压后的目录中,获得WebSphere MQ授权,命令如下:

./mqlicense.sh -text_only

阅读全文后,选择1接受授权。

6:安装WebSphere MQ客户端和服务端,命令如下:

rpm -ivh MQSeriesRuntime-6.0.0-0.i386.rpm

rpm -ivh MQSeriesSDK-6.0.0-0.i386.rpm

rpm -ivh MQSeriesJava-6.0.0-0.i386.rpm

rpm -ivh MQSeriesClient-6.0.0-0.i386.rpm

rpm -ivh MQSeriesSamples-6.0.0-0.i386.rpm

rpm -ivh MQSeriesServer-6.0.0-0.i386.rpm(如果只装客户端,这个没必要安装)

7:安装校验

rpm -qa | grep MQSeries

结果如下则表明MQ 客户端的安装已成功。

MQSeriesRuntime-6.0.0-0

MQSeriesSDK-6.0.0-0

MQSeriesJava-6.0.0-0

MQSeriesClient-6.0.0-0

MQSeriesSamples-6.0.0-0

MQSeriesServer-6.0.0-0(只装客户端,是没有这一项的)

到这里MQ就已经安装完成了,其实MQ的安装摸索一下就会了,关键是MQ的配置。


下面简要说明一下MQ的配置操作:

安装完MQ,程序本身会把/opt/mqm/bin/目录下面的一些程序链接到/usr/bin/下面,例如crtmqm,runmqsc等等,这些命令只有安装了服务端才有。

1:创建队列管理器

crtmqm –q QMgrName

-q是指创建缺省的队列管理器 。

2:删除队列管理器

dltmqm QMgrName

3:启动队列管理器

strmqm QmgrName

如果是启动默认的队列管理器,可以不带其名字

4:停止队列管理器

endmqm QmgrName 受控停止

endmqm –i QmgrName 立即停止

endmqm –p QmgrName 强制停止

5:显示队列管理器

dspmq –m QmgrName

如果输入dspmq,那么显示的是默认的队列管理器。

6:运行MQSeries命令

runmqsc QmgrName

如果是默认队列管理器,可以不带其名字

7:往队列中放消息

amqsput QName QmgrName

如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字

从队列中取出消息

amqsget QName QmgrName

如果队列是默认队列管理器中的队列,可以不带其队列管理器的名字

8:启动通道

runmqchl –c ChlName –m QmgrName

启动侦听

runmqlsr –t TYPE –p PORT –m QMgrName

停止侦听

endmqlsr -m QmgrName

9:定义死信队列

DEFINE QLOCAL(QNAME) DEFPSIST(YES) REPLACE

设定队列管理器的死信队列

ALTER QMGR DEADQ(QNAME)

定义本地队列

DEFINE QL(QNAME) REPLACE

定义别名队列

DEFINE QALIAS(QALIASNAME) TARGQ(QNAME)

远程队列定义

DEFINE QREMOTE(QRNAME) + RNAME(AAA) RQMNAME(QMGRNAME) + XMITQ(QTNAME)

定义模型队列

DEFINE QMODEL(QNAME) DEFTYPE(TEMPDYN)

定义本地传输队列

DEFINE QLOCAL(QTNAME) USAGE(XMITQ) DEFPSIST(YES) +

INITQ(SYSTEM.CHANNEL.INITQ)+

PROCESS(PROCESSNAME) REPLACE

10:创建发送方通道

DEFINE CHANNEL(SDRNAME) CHLTYPE(SDR)+

CONNAME(‘100.100.100.215(1418)’) XMITQ(QTNAME) REPLACE

其中CHLTYPE可以是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR和CLUSRCVR。

创建接收方通道

DEFINE CHANNEL(SDR_ TEST) CHLTYPE(RCVR) REPLACE

创建服务器连接通道

DEFINE CHANNEL(SVRCONNNAME) CHLTYPE(SVRCONN) REPLACE

显示队列的所有属性

DISPLAY QUEUE(QNAME) [ALL]

显示队列的所选属性

DISPLAY QUEUE(QNAME) DESCR GET PUT

DISPLAY QUEUE(QNAME)MAXDEPTH CURDEPTH

显示队列管理器的所有属性

DISPLAY QMGR [ALL]

显示进程定义

DISPLAY PROCESS(PRONAME)

更改属性

ALTER QMGR DESCR(‘NEW DESCRIPTION’)

ALTER QLOCAL(QNAME) PUT(DISABLED)

ALTER QALIAS(QNAME) TARGQ(TARGQNAME)

删除队列

DELETE QLOCAL(QNAME)

DELETE QREMOTE(QRNAME)

清除队列中的所有消息

CLEAR QLOCAL(QNAME)

以上就是基本的操作,对于更深入的东西,只能慢慢研究了,先写到这!