posts - 14,  comments - 22,  trackbacks - 0

学习MQ(三) 一个实例。
现在有两台机器A和B,分别安装了MQ6.0,我要通过MQ进行A和B之间的双向通信。
我打算分两步,第一步:实现A到B的数据传输。
在A上:
1、创建队列管理器 QM_1001。
2、创建本地队列 LQ_1001
3、创建传输队列 XQ_1001
4、创建远程队列 RQ_1002
5、创建发送方通道 1001.1002
在B上:
1、创建队列管理器 QM_1002
2、创建本地队列 LQ_1002
3、创建接收方通道 1001.1002,名字必须与发送方通道相同。
4、创建侦听器,监听1414端口
这样,A到B的数据传输就可以了。
启动队列管理器QM_1001和QM_1002,启动B上的侦听器,A上启动发送方通道1001.1002,B上的接收方通道也会自动运行;
第二步:实现B到A的数据传输
在B上:
1、创建传输队列 XQ_1002
2、创建远程队列 RQ_1001
3、创建发送方通道 1002.1001
在A上:
1、创建接收方通道1002.1001
2、创建侦听器,侦听1414端口
启动A上的侦听器,启动B上的发送方通道1002.1001,这样A上的接收方通道会自动运行。
这样,由B到A的数据传输也能进行了。
这是我搞定的第一个例子,也是我学习MQ以来感觉有进步的一次。
下面是脚本。
在A上:
* 定义队列管理器
crtmqm -t 5000 -h 1000 -lc -lf 10240 -lp 30 -ls 32 -q QM_1001
*更改QM的字符集编码(CCSID)
    ALTER QMGR FORCE CCSID(1381)

* 定义本地队列
    DEFINE QLOCAL('LQ_1001') REPLACE +
           USAGE(normal) +
    DEFPSIST(YES)

* 定义传输队列
    DEFINE QLOCAL('XQ_1001') REPLACE +
           USAGE(XMITQ) +
    DEFPSIST(YES) +
    TRIGGER +
    TRIGTYPE(FIRST) +
    INITQ('SYSTEM.CHANNEL.INITQ') +
    PROCESS('') +
    TRIGDATA('1001.1002')

* 定义远程队列
    DEFINE QREMOTE('RQ_1002') +
    DEFPSIST(YES) +
    RNAME('LQ_1002') +
    RQMNAME('QM_1002') +
    XMITQ('XQ_1001')

* 定义发送方通道
    DEFINE CHANNEL('1001.1002') +
    CHLTYPE(SDR) +
    TRPTYPE(TCP) +
    CONNAME('192.168.110.35(1414)') +
    XMITQ('XQ_1001') +
    DISCINT(0) +
    SHORTTMR(30) +
    SHORTRTY(999999999) +
    LONGTMR(1200) +
           LONGRTY(999999999)

* 定义接收方通道
    DEFINE CHANNEL('1002.1001') +
    CHLTYPE(RCVR) +
    TRPTYPE(TCP)
* 启动队列管理器
strmqm QM_1001
* 启动侦听器
runmqlsr -m QM_1001 -t TCP -p 1414 &

在B上:
* 定义队列管理器
crtmqm -t 5000 -h 1000 -lc -lf 10240 -lp 30 -ls 32 -q QM_1002
*更改QM的字符集编码(CCSID)
    ALTER QMGR FORCE CCSID(1381)

* 定义本地队列
    DEFINE QLOCAL('LQ_1002') REPLACE +
           USAGE(normal) +
    DEFPSIST(YES)

* 定义传输队列
    DEFINE QLOCAL('XQ_1002') REPLACE +
           USAGE(XMITQ) +
    DEFPSIST(YES) +
    TRIGGER +
    TRIGTYPE(FIRST) +
    INITQ('SYSTEM.CHANNEL.INITQ') +
    PROCESS('') +
    TRIGDATA('1002.1001')

* 定义远程队列
    DEFINE QREMOTE('RQ_1001') +
    DEFPSIST(YES) +
    RNAME('LQ_1001') +
    RQMNAME('QM_1001') +
    XMITQ('XQ_1002')

* 定义发送方通道
    DEFINE CHANNEL('1002.1001') +
    CHLTYPE(SDR) +
    TRPTYPE(TCP) +
    CONNAME('192.168.110.21(1414)') +
    XMITQ('XQ_1002') +
    DISCINT(0) +
    SHORTTMR(30) +
    SHORTRTY(999999999) +
    LONGTMR(1200) +
           LONGRTY(999999999)

* 定义接收方通道
    DEFINE CHANNEL('1001.1002') +
    CHLTYPE(RCVR) +
    TRPTYPE(TCP)
* 启动队列管理器
strmqm QM_1002
* 启动侦听器
runmqlsr -m QM_1002 -t TCP -p 1414 &

剩下几个疑问没有明白
1、更改QM的字符集编码是做什么用的?
2、从资料上看到有个服务器传输通道,不知道是做什么用的?

posted on 2008-11-12 17:37 张老三 阅读(3815) 评论(3)  编辑  收藏

只有注册用户登录后才能发表评论。


网站导航: