IBM WebSphere MQ安装及使用教程
- Linux下websphere MQ安装
#软件安装目录
mkdir /opt/mqm
#添加用户组mqm
groupadd mqm
useradd -d /var/mqm -g mqm -s /usr/sbin -m mqm
#设置密码
passwd mqm
#授权
chown -R mqm:mqm /opt/mqm
chown -R mqm:mqm /var/mqm
#解压MQ
tar -zxvf MQ....
#运行授权命令 -text_only作为测试使用,90天试用期。-accept需要购买license
./mqlicense.sh -text_only
#执行安装命令
rpm -ivh MQSeriesRuntime-9.1.0-0.x86_64.rpm
rpm -ivh MQSeriesSDK-9.1.0-0.x86_64.rpm
rpm -ivh MQSeriesServer-9.1.0-0.x86_64.rpm
rpm -ivh MQSeriesJava-9.1.0-0.x86_64.rpm
rpm -ivh MQSeriesSamples-9.1.0-0.x86_64.rpm
#查看安装组件
rpm -qa |grep MQ
#用mqm登陆,创建测试队列管理器和队列
su - mqm
#创建一个带死信队列的队列管理器。QM_TEST是队列管理器的名称,可以根据需要起不同的名称
crtmqm -u SYSTEM.DEAD.LETTER.QUEUE QM_TEST
--PS:如果出现ctrmqm:command not found,在mqm用户环境变量中添加PATH=/var/mqm/bin:/opt/mqm/samp/bin:/opt/mqm/bin:bin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/X11R6/bin,刷新即可
#启动队列管理器
strmqm QM_TEST
#启动MQ管理工具
runmqsc QM_TEST
#在管理工具内执行以下命令,创建监听器
define listener(TCP.LISTENER) trptype(tcp) control(qmgr) port(1414)
start listener(TCP.LISTENER)
#在管理工具内执行以下命令,创建远程MQ Explorer使用的通道
define channel(SYSTEM.ADMIN.SVRCONN) chltype(SVRCONN) REPLACE
#在管理工具内执行以下命令,放行远程的管理连接
set CHLAUTH() TYPE(BLOCKUSER) USERLIST('nobody','MQADMIN')
set CHLAUTH(SYSTEM.ADMIN.*) TYPE(BLOCKUSER) USERLIST('nobody')
#使用MQ的Windows介质安装MQ Explorer,并启动
#Queue Manger Name中填写远程对列管理器的名称,此处为QM_TEST。在后续的配置页面中输入队列管理器所在服务器的ip,用户名为mqm(无密码)
#如果连接时MQ Explorer显示异常AMQ4059 Reason Code 2538,可能是防火墙阻碍了访问,可以在Linux服务器上执行iptables -F 以后再试试
#IBM MQ 8.0取消服务认证方法:
将连接认证选项中的SYSTEM.DEFAULT.AUTHINFO.IDPWOS的相关属性配置为OPTIONAL:
ALTER AUTHINFO(SYSTEM.DEFAULT.AUTHINFO.IDPWOS) AUTHTYPE(IDPWOS) CHCKCLNT(OPTIONAL)
或者直接将连接认证选项置为空,将其完全关闭,指令如下:
ALTER QMGR CONNAUTH(' ') 注:单引号内有空格
在执行完上述两条命令中的任一条后,都需要刷新连接认证的缓存,指令如下:
REFRESH SECURITY TYPE(CONNAUTH)
警告:生产环境不推荐停用该功能。
- 基本命令
#查看mq队列管理器启动状态
dspmq
#查看mq版本
dspmgver
#进入MQ控制台
runmqsc QM_NAME
#启动MQ
strmqm QM_NAME
#停止MQ
endmqm -i QM_NAME
#删除MQ队列管理器
dltmqm QM_NAME
#依据错误码,查看Mo的错误信息,如2085
mqrc 2085
####通道
#重置通道
reset chl(channel name)
#删除通道
delete chl(channel name)
#关闭通道
stop chl(A.B.RT.CHL);
#启动通道
start chl(A.B.RT.CHL);
#查看MQ的所有通道状态dis chs (*)
#查看某一个具体的通道状态信息
dis chs(A.B.RT.CHL);
#查看列队状态,极少用,主要用于定位故障时使用
dis qs(* )
####消息命令
#发送消息
amqsput Q1 QM_TEST
#浏览消息
amqsbcg Q1 QM_TEST
#进入A服务器的Q1,查看相应队列的深度,即CURDEPTH属性
dis ql(B.A.RT.QL)
#读取消息
amqsget Q1 QM_TEST
查看配置mq配置 /var/mqm/mqs.ini
查看mq日志 /var/mqm/qmgrs/队列管理器名/errors
查看mb日志 /var/mqsi/common/error
修改mq配置文件:/var/mqm/mqs.ini
- A机接收端配置
#创建本地实时接收队列
define ql(B.A.RT.QL)
#创建本地批垒接收队列
define ql(B.A.BT.QL)
#创建实时接收通道,发送者通道名与此相同
define channel(B.A.RT.CHL) chltype(RCVR) trptype(TCP)
#创建批量接收通道,发送者通道名与此相同
define channel(B.A.BT.CHL) chltype (RCVR) trptype (TCP)
#创建实时发送传输队列
define gl(A.B.RT.TRANS ) usage (xmitq)
#创建批量发送传输队列
define ql(A.B.BT.TRANS) usage (xmitq)
#创建实时发送通道,接收者通道名与此相同
define channe1(A.B.RT.cHL) chltype(SDR) conname ('10.0.0.7(1415) ') xmitq(A.B.RT.TRANS)trptype (tcp)
#创建批量发送通道,接收者通道名与此相同
define channel(A.B.BT.CHL) chltype(SDR) conname( '10.0.0.7(1415) ') xmitq(A.B.BT.TRANS)trptype(tcp)
#创建实时发送远程队列,rname即为对应的、需要接收消息的wo队列管理器的接收队列名,rqmname即为对应的、需要接收消息的MQ队列管理器名
#远程队列不存放消息,全部由传输队列存放
define qr(.B.RT.QR) rname(A.B.RT.QL)rqmname (QMBANK_B) xmitq(A.B.RT.TRANS)
#创建批量发送远程队列
define qr(A.B.BT.QR) rname(A.B.BT.QL)rqmname (QMBANK_B) xmitq(A.B.BT.TRANS)
#创建监听
define listener(QM1.LISR) trptype(tcp) control(QMGR) port(1414)
#启动监听
start listener (QM1.LISR)
#启动实时发送通道(B机需启动监听之后)
start chl(A-B.RT.CHL)
#启动批量发送通道(B机需启动监听之后)
start chl(A-B.BT.CHL)
- B机发送端配置
#创建实时发送传输队列
define ql(B.A.RT.TRANS) usage(xmitq)
#创建批量发送传输队列
define ql(B.A.BT.TRANS) usage(xmitq)
#创建实时发送通道,接收者通道名与此相同
define channel(B.A.RT.CHL) chltype(SDR) conname('119.91.99.13(1414)') xmitq(B.A.RT.TRANS) trptype(tcp) replace
幸创建批量发送通道,接收者通道名与此相同I
define channel(B.A.BT.CHL) chltype(SDR) conname('119.91.99.13(1414)') xmitq(B.A.BT.TRANS) trptype(tcp) replace
#创建实时发送远程队列
define qr(B.A.RT.QR) rname(B.A.RT.QL) rqmname(QM_TEST) xmitq(B.A.RT.TRANS)
#创建批量发送远程队列
define qr(B.A.BT.QR) rname(B.A.BT.QL) rqmname(QM_TEST) xmitq(B.A.BT.TRANS)
#创建本地实时接收队列
define ql(A.B.RT.QL)
#创建本地批量接收队列
define ql(A.B.BT.QL)
#创建实时接收通道
define channel (A.B.RT.CHL) chltype(RCVR) trptype(TCP)
#创建批量接收通道
define channel (A.B.BT.CHL) chltype(RCVR) trptype(TCP)
#创建监听
define listener(QM_TEST.LISR) trptype(tcp) control(QMGR) port(1414)
#启动监听
start listener(QM_TEST.LISR)
#启动实时发送通道(A机需启动监听之后)
start chl (B.A.RT.CHL)
#启动批量发送通道A机需启动监听之后)
start chl(B.A.BT.CHL)
- 删除队列管理器
#先停止后删除
endmgm -i QMBANK_A
dltmqm QMBANK_A
删除MQ安装程序
rpm -e MQseriesSDK-8.0.0-2.x86_64
rpm -e MQseriessamples-8.0.0-2-x86_64
rpm -e Moseriesserver-8.0.0-2.x86_64
rpm -e MQseriesclient-8.0.0-2.x86_64
rpm -e MoseriesJava-8.0.0-2.x86_64
rpm -e MoseriesMsg_zh_CN-8.0.0-2.x86_64
rpm -e MQSeriesRuntime-8.0.0-2.x86_64
- Spring Botot集成IBM MQ
https://blog.csdn.net/Yu_Mariam/article/details/118369699 参考其它连接