MQ双机队列通信配置
- 基本配置示例
本地系统的队列管理器QM1和远端系统的队列管理器QM2通过消息通道传递消息。本地系统的应用程序1把消息放到队列管理器QM1的远程队列上,然后远端系统的应用程序2从队列管理器2的本地队列中取走消息。
当前操作环境如下,其中mq01表示本地系统,mq02表示远端系统。
|
主机名 |
IP地址 |
队列管理器 |
|
mq01 |
192.168.10.100 |
QM_TEST1 |
|
mq02 |
192.168.10.102 |
QM_TEST2 |
- 基本配置步骤
1、创建队列管理器
2、启动队列管理器
3、创建对象:
本地传输队列
远程队列
发送通道
接收通道
本地接收队列
死信队列
4、启动通道监听程序
5、启动发送通道
6、测试验证
- 本地系统配置
1、创建队列管理器QM_TEST1
crtmqm QM_TEST1
2、启动队列管理器QM_TEST1
strmqm QM_TEST1
3、运行队列管理器
runmqsc QM_TEST1
4、 创建死信队列
DEFINE QL(TEST1.DEADQ) DEFPSIST(YES)
更改队列管理器属性,设置死信队列为为TEST1.DEADQ
ALTER QMGR DEADQ(TEST1.DEADQ)
5、创建本地传输队列 TEST1.XQ
DEFINE QLOCAL(TEST1.XQ) USAGE(XMITQ) DEFPSIST(YES)
6、创建远程队列TO.TEST2
DEFINE QREMOTE(TO.TEST2) RNAME(FROM.TEST1) RQMNAME(QM_TEST2)+
XMITQ(TEST1.XQ)
7、创建发送通道TEST1.TO.TEST2,使用TCPIP协议,远程主机地址为192.168.10.102 , 端口为2414,传输队列为TEST1.XQ。
DEFINE CHANNEL(TEST1.TO.TEST2) CHLTYPE(SDR) +
CONNAME('192.168.10.102(2414)') XMITQ(TEST1.XQ)
8、创建本地系统的本地监听
DEFINE LISTENER(LNTEST1) TRPTYPE(TCP) PORT(2414) IPADDR(192.168.10.100)+
CONTROL(QMGR)
-- CONTROL(QMGR) 监听在队列管理器启动时启动
- 远端系统配置
1、创建队列管理器QM_TEST2
crtmqm QM_TEST2
2、启动队列管理器QM_TEST2
strmqm QM_TEST2
3、运行队列管理器
runmqsc QM_TEST2
4、创建死信队列
DEFINE QL(TEST2.DEADQ) DEFPSIST(YES)
更改队列管理器属性,设置死信队列为TEST2.DEADQ
ALTER QMGR DEADQ(TEST2.DEADQ)
5、创建远端系统的本地队列FROM.TEST1
DEFINE QLOCAL(FROM.TEST1) DEFPSIST(YES)
6、创建接收通道TEST1.TO.TEST2,使用TCPIP协议,传输队列为TEST1.XQ
DEFINE CHANNEL(TEST1.TO.TEST2) CHLTYPE(RCVR)
7、创建远端系统的本地监听
DEFINE LISTENER(LNTEST2) TRPTYPE(TCP) PORT(2414) IPADDR(192.168.10.102)+
CONTROL(QMGR)
-- CONTROL(QMGR) 监听在队列管理器启动时启动
- 启动监听和通道
1、启动监听
start LISTENER(LNTEST1)
start LISTENER(LNTEST2)
如果定义监听时配置了CONTROL(QMGR) ,则监听在队列管理器启动时启动,不需要再手工启动。
2、启动通道
start CHANNEL(TEST1.TO.TEST2)
- 测试验证
1、本地系统放消息
./amqsput TO.TEST2 QM_TEST1
2、远端系统取消息
./amqsget FROM.TEST1 QM_TEST2
3、远端系统查看消息
./amqsbcg FROM.TEST1 QM_TEST2