MQ通道配置示例(1):Sender/Receiver
Sender/Receiver 通道是最常见的通道配置方式,Sender 作为通道的发送方也是通道连接
的主动发起方,Receiver 作为通道的接收方也是通道连接的被动监听方。在Receiver 端要配
置并运行相应的监听器。
在以下的配置脚本中,通道连接两个队列管理器QM1 和QM2。其中,QM1 为Sender,
QM2 为Receiver。在QM1 上配置了远程队列QR 和传输队列QX,其中QR 指向队列管理
器QM2 上的本地队列QL,且QR 与QX 对应,即凡是要放入QR 队列的消息,在加上传输
消息头后直接放入QX 中等待发送。QM1 上配置Sender 通道需要指定对方的通信参数 (IP
地址和端口),而这些参数必须与QM2 上的监听器设置对应。Sender 通道与传输队列QX 对
应,表示凡是在QX 中等待发送的消息最终都可以由该通道送出。双方通道必须同名。
//创建并启动队列管理器MQ1
C:\windows\system32> CRTMQM QM1
C:\windows\system32> STRMQM QM1
//创建远程队列QR、传输队列QX以及通道C
C:\windows\system32> RUNMQSC QM1
5724-H72 (C) Copyright IBM Corp. 1994, 2009. ALL RIGHTS RESERVED.
启动队列管理器 QM1 的 MQSC。
DEFINE QREMOTE(QR) RNAME(QL) RQMNAME(QM2) XMITQ(QX) REPLACE
1 : DEFINE QREMOTE(QR) RNAME(QL) RQMNAME(QM2) XMITQ(QX) REPLACE
AMQ8006: WebSphere MQ 队列已创建。
DEFINE QLOCAL(QX) USAGE(XMITQ) REPLACE
2 : DEFINE QLOCAL(QX) USAGE(XMITQ) REPLACE
AMQ8006: WebSphere MQ 队列已创建。
DEFINE CHANNEL(C) CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('127.0.0.1(1416)') XMITQ(QX) REPLACE
3 : DEFINE CHANNEL(C) CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('127.0.0.1(1416)') XMITQ(QX) REPLACE
AMQ8014: WebSphere MQ 通道已创建。
END
4 : END
=================================
同样,创建对应的队列管理器QM2以及本地队列QL和通道C
C:\windows\system32> CRTMQM QM2
C:\windows\system32> STRMQM QM2
C:\windows\system32> RUNMQSC QM2
DEFINE QLOCAL(QL) REPLACE
1 : DEFINE QLOCAL(QL) REPLACE
AMQ8006: WebSphere MQ 队列已创建。
DEFINE CHANNEL(C) CHLTYPE(RCVR) TRPTYPE(TCP) REPLACE
2 : DEFINE CHANNEL(C) CHLTYPE(RCVR) TRPTYPE(TCP) REPLACE
AMQ8014: WebSphere MQ 通道已创建。
END
3 : END
//远程的队列管理器至少有一个 TCP/IP Listener,
C:\windows\system32> start runmqlsr -m QM2 -t tcp -p 1416
C:\windows\system32> netstat -an | find /i "1416"
TCP 0.0.0.0:1416 0.0.0.0:0 LISTENING
TCP [::]:1416 [::]:0 LISTENING
=============================================
C:\windows\system32> RUNMQSC QM1
start channel(C)
1 : start channel(C)
AMQ8018: 启动 WebSphere MQ 通道已接受。
END
2 : END
C:\windows\system32> amqsput QR QM1
Sample AMQSPUT0 start
target queue is QR
ARe you there?
Coool
byeBye
Sample AMQSPUT0 end
与此同时
SESSION 2:
C:\windows\system32> amqsget QL QM2
Sample AMQSGET0 start
message <ARe you there?>
message <Coool>
message <byeBye>
no more messages
Sender/Receiver 通道是最常见的通道配置方式,Sender 作为通道的发送方也是通道连接
的主动发起方,Receiver 作为通道的接收方也是通道连接的被动监听方。在Receiver 端要配
置并运行相应的监听器。
在以下的配置脚本中,通道连接两个队列管理器QM1 和QM2。其中,QM1 为Sender,
QM2 为Receiver。在QM1 上配置了远程队列QR 和传输队列QX,其中QR 指向队列管理
器QM2 上的本地队列QL,且QR 与QX 对应,即凡是要放入QR 队列的消息,在加上传输
消息头后直接放入QX 中等待发送。QM1 上配置Sender 通道需要指定对方的通信参数 (IP
地址和端口),而这些参数必须与QM2 上的监听器设置对应。Sender 通道与传输队列QX 对
应,表示凡是在QX 中等待发送的消息最终都可以由该通道送出。双方通道必须同名。
架构如下图所示:
STEP1: 创建Sender队列管理器以及队列
SESSION 1://创建并启动队列管理器MQ1
C:\windows\system32> CRTMQM QM1
C:\windows\system32> STRMQM QM1
//创建远程队列QR、传输队列QX以及通道C
C:\windows\system32> RUNMQSC QM1
5724-H72 (C) Copyright IBM Corp. 1994, 2009. ALL RIGHTS RESERVED.
启动队列管理器 QM1 的 MQSC。
DEFINE QREMOTE(QR) RNAME(QL) RQMNAME(QM2) XMITQ(QX) REPLACE
1 : DEFINE QREMOTE(QR) RNAME(QL) RQMNAME(QM2) XMITQ(QX) REPLACE
AMQ8006: WebSphere MQ 队列已创建。
DEFINE QLOCAL(QX) USAGE(XMITQ) REPLACE
2 : DEFINE QLOCAL(QX) USAGE(XMITQ) REPLACE
AMQ8006: WebSphere MQ 队列已创建。
DEFINE CHANNEL(C) CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('127.0.0.1(1416)') XMITQ(QX) REPLACE
3 : DEFINE CHANNEL(C) CHLTYPE(SDR) TRPTYPE(TCP) CONNAME('127.0.0.1(1416)') XMITQ(QX) REPLACE
AMQ8014: WebSphere MQ 通道已创建。
END
4 : END
=================================
STEP2: 创建Receiver队列管理器以及队列,并启动监听
SESSION 2:同样,创建对应的队列管理器QM2以及本地队列QL和通道C
C:\windows\system32> CRTMQM QM2
C:\windows\system32> STRMQM QM2
C:\windows\system32> RUNMQSC QM2
DEFINE QLOCAL(QL) REPLACE
1 : DEFINE QLOCAL(QL) REPLACE
AMQ8006: WebSphere MQ 队列已创建。
DEFINE CHANNEL(C) CHLTYPE(RCVR) TRPTYPE(TCP) REPLACE
2 : DEFINE CHANNEL(C) CHLTYPE(RCVR) TRPTYPE(TCP) REPLACE
AMQ8014: WebSphere MQ 通道已创建。
END
3 : END
//远程的队列管理器至少有一个 TCP/IP Listener,
C:\windows\system32> start runmqlsr -m QM2 -t tcp -p 1416
C:\windows\system32> netstat -an | find /i "1416"
TCP 0.0.0.0:1416 0.0.0.0:0 LISTENING
TCP [::]:1416 [::]:0 LISTENING
=============================================
STEP3:启动通道,开始发送和接收消息:
SESSION 1:C:\windows\system32> RUNMQSC QM1
start channel(C)
1 : start channel(C)
AMQ8018: 启动 WebSphere MQ 通道已接受。
END
2 : END
C:\windows\system32> amqsput QR QM1
Sample AMQSPUT0 start
target queue is QR
ARe you there?
Coool
byeBye
Sample AMQSPUT0 end
与此同时
SESSION 2:
C:\windows\system32> amqsget QL QM2
Sample AMQSGET0 start
message <ARe you there?>
message <Coool>
message <byeBye>
no more messages
Sample AMQSGET0 end
参考资料:《精通Websphere MQ》