准备工作
- 两台linux机器或者虚拟机
- 保证两天机器在同一网段内,并保证能够相互ping通
- 都已安装好IBM MQ并将端口1414从防火墙中开放出来
一、接收方机器的操作
1.创建队列管理器QM_APPLE
crtmqm QM_APPLE
注意:发送方机器创建的远程队列中rqmname为该队列管理器,注意名称要一致
2.启动队列管理器QM_APPLE
strmqm QM_APPLE
3.启动MQSC
runmqsc QM_APPLE
4.创建本地队列Q1
define qlocal (Q1)
5.定义接收方通道
define channel (QM_ORANGE.QM_APPLE) chltype (RCVR) trptype (TCP)
6.修改缺省的监听器
alter listener(system.default.listener.tcp) trptype(tcp) port(1414)
7.启动监听器
start listener(system.default.listener.tcp)
8.关闭MQSC,接收方创建完毕
end
二 、发送机器的操作
1.创建队列管理器QM_ORANGE
crtmqm QM_ORANGE
2.启动队列管理器QM_ORANGE
strmqm QM_ORANGE
3. 启动MQSC命令
runmqsc QM_ORANGE
4. 创建本地传输队列
define qlocal (QM_APPLE) usage (xmitq)
在IBMMQ 中,队列的用途有两种,分别为正常和传输,这里创建传输用途的队列给远程队列使用
5. 创建远程队列
define qremote (Q1) rname (Q1) rqmname(QM_APPLE) xmitq (QM_APPLE)
qremote(远程队列名称)
rname (要连接的队列)
rqmname(要连接的队列管理器)
xmitq(使用的传输队列)
6. 定义发送方通道
define channel(QM_ORANGE.QM_APPLE) chltype(sdr) conname('192.168.137.2(1414)') xmitq(QM_APPLE) trptype(tcp)
- channel (通道名称)
- chltype (通道类型)发件人(SDR)接收器(RCVR)服务器(SVR)请求者(RQSTR)群集发件人(CLUSSDR)集群接收器(CLUSRCVR)
- conname(连接名称,必须为’ip(port)'形式)
- xmitq(传输队列)
- trptype (协议类型)
7. 启动发送方通道
start channel (QM_ORANGE.QM_APPLE)
8.关闭MQSC,发送方创建完毕
end
三、进行测试
1.发送方机器上向远程队列Q1中写入消息
amqsput Q1 QM_ORANGE
2.接收方机器上获取本地队列Q1中的消息
amqsget Q1 QM_APPLE
3.注意
若先进行的发送方机器配置,则可能会出现接收方机器接收不到消息的情况,原因是发送方通道启动时,接收方通道还不存在,导致发送方通道一直在重连而又还没连接上时进行了消息的发送,可以手动在发送方机器上重新启动发送方通道或等待一段时间都可以。
参考:将消息发送至远程队列