學(xué)習(xí)MQ(三) 一個(gè)實(shí)例。
現(xiàn)在有兩臺機(jī)器A和B,分別安裝了MQ6.0,我要通過MQ進(jìn)行A和B之間的雙向通信。
我打算分兩步,第一步:實(shí)現(xiàn)A到B的數(shù)據(jù)傳輸。
在A上:
1、創(chuàng)建隊(duì)列管理器 QM_1001。
2、創(chuàng)建本地隊(duì)列 LQ_1001
3、創(chuàng)建傳輸隊(duì)列 XQ_1001
4、創(chuàng)建遠(yuǎn)程隊(duì)列 RQ_1002
5、創(chuàng)建發(fā)送方通道 1001.1002
在B上:
1、創(chuàng)建隊(duì)列管理器 QM_1002
2、創(chuàng)建本地隊(duì)列 LQ_1002
3、創(chuàng)建接收方通道 1001.1002,名字必須與發(fā)送方通道相同。
4、創(chuàng)建偵聽器,監(jiān)聽1414端口
這樣,A到B的數(shù)據(jù)傳輸就可以了。
啟動隊(duì)列管理器QM_1001和QM_1002,啟動B上的偵聽器,A上啟動發(fā)送方通道1001.1002,B上的接收方通道也會自動運(yùn)行;
第二步:實(shí)現(xiàn)B到A的數(shù)據(jù)傳輸
在B上:
1、創(chuàng)建傳輸隊(duì)列 XQ_1002
2、創(chuàng)建遠(yuǎn)程隊(duì)列 RQ_1001
3、創(chuàng)建發(fā)送方通道 1002.1001
在A上:
1、創(chuàng)建接收方通道1002.1001
2、創(chuàng)建偵聽器,偵聽1414端口
啟動A上的偵聽器,啟動B上的發(fā)送方通道1002.1001,這樣A上的接收方通道會自動運(yùn)行。
這樣,由B到A的數(shù)據(jù)傳輸也能進(jìn)行了。
這是我搞定的第一個(gè)例子,也是我學(xué)習(xí)MQ以來感覺有進(jìn)步的一次。
下面是腳本。
在A上:
* 定義隊(duì)列管理器
crtmqm -t 5000 -h 1000 -lc -lf 10240 -lp 30 -ls 32 -q QM_1001
*更改QM的字符集編碼(CCSID)
ALTER QMGR FORCE CCSID(1381)
* 定義本地隊(duì)列
DEFINE QLOCAL('LQ_1001') REPLACE +
USAGE(normal) +
DEFPSIST(YES)
* 定義傳輸隊(duì)列
DEFINE QLOCAL('XQ_1001') REPLACE +
USAGE(XMITQ) +
DEFPSIST(YES) +
TRIGGER +
TRIGTYPE(FIRST) +
INITQ('SYSTEM.CHANNEL.INITQ') +
PROCESS('') +
TRIGDATA('1001.1002')
* 定義遠(yuǎn)程隊(duì)列
DEFINE QREMOTE('RQ_1002') +
DEFPSIST(YES) +
RNAME('LQ_1002') +
RQMNAME('QM_1002') +
XMITQ('XQ_1001')
* 定義發(fā)送方通道
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)
* 啟動隊(duì)列管理器
strmqm QM_1001
* 啟動偵聽器
runmqlsr -m QM_1001 -t TCP -p 1414 &
在B上:
* 定義隊(duì)列管理器
crtmqm -t 5000 -h 1000 -lc -lf 10240 -lp 30 -ls 32 -q QM_1002
*更改QM的字符集編碼(CCSID)
ALTER QMGR FORCE CCSID(1381)
* 定義本地隊(duì)列
DEFINE QLOCAL('LQ_1002') REPLACE +
USAGE(normal) +
DEFPSIST(YES)
* 定義傳輸隊(duì)列
DEFINE QLOCAL('XQ_1002') REPLACE +
USAGE(XMITQ) +
DEFPSIST(YES) +
TRIGGER +
TRIGTYPE(FIRST) +
INITQ('SYSTEM.CHANNEL.INITQ') +
PROCESS('') +
TRIGDATA('1002.1001')
* 定義遠(yuǎn)程隊(duì)列
DEFINE QREMOTE('RQ_1001') +
DEFPSIST(YES) +
RNAME('LQ_1001') +
RQMNAME('QM_1001') +
XMITQ('XQ_1002')
* 定義發(fā)送方通道
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)
* 啟動隊(duì)列管理器
strmqm QM_1002
* 啟動偵聽器
runmqlsr -m QM_1002 -t TCP -p 1414 &
剩下幾個(gè)疑問沒有明白
1、更改QM的字符集編碼是做什么用的?
2、從資料上看到有個(gè)服務(wù)器傳輸通道,不知道是做什么用的?