linux安装IBM Webshere MQ以及配置

一 、安装

安装包链接:

链接:https://pan.baidu.com/s/1Rs6vqGKwadBWQ9N8mFnQWA 
提取码:1hn1

登录root用户登录(必须使用root用户)

1.上传MQ安装包

命令:cd /tmp/

上传本地MQ安装包到该目录下

2.解压安装包

命令:mkdir MQ

命令:cd MQ

命令:tar -zxvf WS_MQ_V8.0.0.9_LINUX_ON_X86_64_IM.tar.gz

3.执行接受许可脚本

命令:./mqlicense.sh -accept

4.安装WebSphere MQ for linux服务器

命令:rpm -ivh MQSeriesRuntime-8.0.0-9.x86_64.rpm

命令:rpm -ivh MQSeriesSDK-8.0.0-9.x86_64.rpm

命令:rpm -ivh MQSeriesServer-8.0.0-9.x86_64.rpm

注:安装完成后,相关文件会被自动安装在/opt/mqm下,在安装。

说明:MQSeriesRuntime-6.0.0-0.i386.rpm时候,安装程序为系统自动创建了一个mqm用户和mqm组,安装完毕后,需要使用该用户来进行MQ的配置。

命令:rpm -ivh MQSeriesClient-8.0.0-9.x86_64.rpm

5.安装 WebSphere MQ 样本程序

(其中包括amqsput、amqsget、amqsgbr和amqsbcg等):

命令:rpm -ivh MQSeriesSamples-8.0.0-9.x86_64.rpm

说明:样本程序安装在/opt/mqm/samp/bin 中。

6安装MQ其他软件包

命令:rpm -ivh MQSeriesMan-8.0.0-9.x86_64.rpm

命令:rpm -ivh MQSeriesJava-8.0.0-9.x86_64.rpm

说明:上面最后一步安装的是JDK运行环境,如果已经有相同或更高版本的JDK,不需要再安装。

重要:

这两个命令是导入导出证书使用的命令由此包生成,执行顺序不能变

rpm -ivh  MQSeriesJRE-8.0.0-4.x86_64.rpm

rpm -ivh MQSeriesGSKit-8.0.0-4.x86_64.rpm

二、配置环境

1.修改mqm用户密码

安装过程创建了一个名为mqm 的用户和一个同样名为mqm 的组,此时,新用户是被锁定的,必须设置一个密码来解锁,这样才能正常使用该用户。

用passwd 命令:

[root@localhost mq]# passwd mqm

说明:以上操作均在root用户下操作,至此MQ7.0安装结束。MQ的配置相关命令操作均在mqm用户下。

2.修改环境变量

命令:vi /etc/profile

添加:

MQ_HOME=/opt/mqm/bin

PATH=$MQ_HOME:$PATH

export PATH

wq保存退出

命令:source /etc/profile

至此,root的操作就完成了!休息一下吧,算了,接着切换mqm账户继续操作开始配置队列管理器!!!

三、授权

1.切换用户mqm:

su – mqm

2.将文件或目录更改为mqm用户名和用户组

chown -R mqm:mqm 文件名

3.授予目录文件读写执行权限

chod 777 文件名(/usr/users/mqm/var,大致是这个目录,具体忘了在什么下了,反正就是有mqm的默认安装目录,安装完之后自动就有这个目录)

这句是给mqm用户授于执行权限,如果需要SSL安装证书,这一步必须执行,如果不需要证书,可以跳过哦,不过最好还是执行吧,反正也不影响,万一以后用的到是不是。

安装好了ibmmq,下一步就是创建队列管理器了,队列以及通道了。在这介绍一下这两个东西:

队列管理器下创建队列和通道:

队列分为三种,本地队列QL,本地传输队列QX,远程队列QR。

本地队列:本地队列是用于本地服务器接收消息的队列。

本地传输队列:和远程队列搭配远程传输到其他网络的服务器的。

远程队列:远程和其他服务器发送消息的。

通道分为三种,发送通道,接收通道,服务器连接通道。

发送和接收不用说,服务器接收通道是用于本地程和代码连接的通道。名称随便起,不用于和远程服务器配置。

准备条件:

1)  IBM MQ消息中间件软件安装完毕

2)  Mqm用户及用户组创建完毕

下面开始建立MQ通道及队列

因为我测试的服务器IP是97,我就用97来命名了

1、查看目前已创建的队列:dspmq

2、创建队列管理器:crtmqm -q QM97

3、开启队列管理器:strmqm QM97

4、  查看队列管理器运行状态:

dspmq:

5、  运行队列管理器并创建相应的远程队列、传输队列及通道

注意:在创建队列和通道的时候先说一点:定义名字的或者绑定名字的时候不加‘’的时候是默认大写的,加上‘’是区分大小写的,这是一个坑。

1)  打开队列管理器并定义远程队列:

runmqsc QM97

定义一个名叫QR97的远程队列

DEFINE QREMOTE('QR97') RNAME('QL98') RQMNAME('QM98') XMITQ('QX97') REPLACE

注释:

QR97:本地服务器定义远程队列的名字;

QL98:绑定内网另一台mq的本地队列的名字;远程连接的时候绑定远程队列的名字(QR的);

QM98:连接另一台mq服务起的队列管理名称;

QX97:本地服务器的传输队列;

2)  定义传输队列:

DEF QL(QX97)  usage(xmitq) SHARE

定义本地队列:

DEFINE QLOCAL(QL97) share

3)  定义发送通道

DEFINE CHANNEL(CH97TOCH98) CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('xx.xx.xx.98(11201)') XMITQ(QX97) REPLACE

CH97TOCH98:发送通道名称;

xx.xx.xx.98(11201):连接mq的IP和端口号;

定义接收通道:

DEFINE CHANNEL(CH98TOCH97) CHLTYPE(RCVR) TRPTYPE(TCP) REPLACE

CH98TOCH97:接收通道的名称;

定义服务器连接通道

define channel('CHaa') chltype(SVRCONN) trptype(TCP) mcauser('mqm')

CHaa:服务里连接通道名称;

Mqm:绑定mq用户;

定义并开启接受队列QM97监听

DEFINE LISTENER(QM97LISTEN) TRPTYPE(TCP) CONTROL(QMGR) PORT(11201)

启动监听:

start LISTENER(QM97LISTEN)  顺便说一下停止监听:stop LISTENER(QM97LISTEN)

开启接收通道

start chl(CH98TOCH97)

开启发送通道:

start chl(CH97TOCH98)

 

注意:

在这讲一波远程连接和内网连接的区别:

内网连接,定义远程队列,远程队列绑定的是对方的本地队列,也就是说,你通过你的远程队列向对方的本地队列发才可以,

外网连接,定义;远程队列,绑定的是对方的远程队列,即通过你的远程队列向对方的远程队列发才可以。

接收消息的时候永远是在本地队列里取。

7、  发送消息测试:

进入到/opt/mqm/samp/bin/ 目录下,执行命令:./amqsput QR97 QM97

输入内容,回车换行,输入完之后按两次回车结束输入。

1) 写入如下内容:

2)远程(由于在本地模拟远程)接收消息队列信息,如下:

获取消息成功,消息中间件可以避免因为宕机或者网络异常所导致的信息丢失问题。

使用mq队列管理器配置信息,以下几点一条都不能丢下:

1)  远程队列

2)  传输队列

3)  传输通道

4)  远程接收队列(对方本地队列)

5)  远程传输通道

6)  远程监听配置及开启

7)  本地通道开启

四、连接客户端

到此,通过linux命令的方式就配置就完了,如果后续要维护MQ最好还是得连接上客户端比较方便,有了可视化界面,就可以很容易的操作了。连接客户端也有很多问题,下面是我趟过的水,你就可以直接使用了,只需要执行4句命令:

如果要取消认证执行命令如下:

---MQ7.5需要修改参数---

(1)alter qmgr CHLAUTH(DISABLED)属性改为不可用

---MQ8.0需要修改参数---

(1)alter qmgr CONNAUTH('')

(2)refresh security type(CONNAUTH)

连接客户端没有权限的时候也需要执行这个!!!

//进入队列管理器

>runmqsc QM97

//首先查看下认证记录

(3)display qmgr chlauth

//将认证关闭

(4)alter qmgr chlauth(disabled)

查看发送通道状态:

​​​​​​​

 

到此,就可以输入配置连接客户端了!

下面统计一些常用的操作命令:

crtmqm -q 名字  创建队列管理器

strmqm 名称  启动队列管理器

runmqsc 名字  运行队列管理器

dspmq 查看队列管理器状态

endmqm 名称 停止队列管理器

endmqm -i 名称 立即停止队列管理器

endmqm -p 名称 强制停止队列管理器

dltmqm 名称 删除队列管理器

define/def qlocal/ql (name) 创建本地队列

define/def qlocal/ql(name) usage(xmitq) replace 创建本地传输队列

define/def qremote(远程队列名称) rname(对方接受队列名称) rqmname(对方队列管理器名称) xmitq(传输队列名称) replace 创建远程队列

通道:

DEFINE CHANNEL(CH97TOCH98) CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('xx.xx.xx.98(11200)') XMITQ(QXBOCI) REPLACE 定义通道

Define channel(name) chltype(sdr) trptype(tcp) conname(‘ip(port)’) xmitq(qxboci) replace

Delete chl(name) 删除通道

Dis chs(name) 查看通道状态

Start chl(name) 启动通道

Stop chl(name) 关闭通道

Reset chl(name) 重置通道

队列:

Dis ql(qname) all 显示队列所有属性

Dis ql(qname) curdepth 显示队列当前深度,即当前队列的消息数

Dis qs(qname) type(queue) all 显示与队列相关的状态信息

Dis qs(qname) type(handle) all 显示与访问队列的句柄相关的状态信息

Delete ql(qname) 删除队列

Clear ql(name) 删除队列中的消息

  • 17
    点赞
  • 105
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值