最近公司的項目要求使用MQ連接配接外部環境進行通訊,而所有連接配接外部環境的機器隻能通過一台機器A這裡他的ip為128.192.179.7。而我們的應用部署在另外一台機器B128.96.96.45(此機器為内網Ip).所有必需在機器A上面進行資訊的中轉。是以使用MQ進行資訊的中轉,此去配置雙向通道,而隊列又分為實時和非實時。具體配置如下:
機器A上面的配置腳本為為:
#!/bin/sh
endmqm QMEMBFE
crtmqm QMEMBFE
strmqm QMEMBFE
runmqsc QMEMBFE <<!
def ql(DEADQ) defpsist(yes) maxdepth(20000) replace
def ql(ERRMSG) defpsist(yes) maxdepth(20000) replace
def ql(1051000001_1) defpsist(yes) maxdepth(20000) replace
def ql(1051000001_2) defpsist(yes) maxdepth(20000) replace
def ql(1051000001_3) defpsist(yes) maxdepth(20000) replace
def ql(1051000001_4) defpsist(yes) maxdepth(20000) replace
alter ql(1051000001_1) BOTHRESH(3) BOQNAME(ERRMSG)
alter ql(1051000001_2) BOTHRESH(3) BOQNAME(ERRMSG)
alter ql(1051000001_3) BOTHRESH(3) BOQNAME(ERRMSG)
alter ql(1051000001_4) BOTHRESH(3) BOQNAME(ERRMSG)
alter qmgr deadq(deadq)
alter qmgr ccsid(819)
def qr(1051000001_5) rname(1051000001_1) rqmname(QMEMBFE1) xmitq(QM1051000002) defpsist(yes) replace
def qr(1051000001_6) rname(1051000001_2) rqmname(QMEMBFE1) xmitq(QM1051000002) defpsist(yes) replace
def ql(QM1051000002) usage(XMITQ) defpsist(YES) maxdepth(500000) trigger trigtype(FIRST) trigdata(1051000001.QMEMBFE) initq(SYSTEM.CHANNEL.INITQ) replace
def chl(1051000001.QMEMBFE) chltype(SDR) discint(1800) conname('128.96.96.45(1414)') xmitq(QM1051000002) trptype(tcp) shortrty(10000) shorttmr(30) longtmr(300) longrty(999999999) batchsz(50) replace
def chl(QMEMBFE.1051000001) chltype(rcvr) trptype(tcp)
def listener(QM1051000002) TRPTYPE(TCP) PORT(1415) CONTROL(MANUAL) BACKLOG(0)
START LISTENER(QM1051000002)
!
機器B上建立腳本為:
#!/bin/sh
endmqm QMEMBFE1
crtmqm QMEMBFE1
strmqm QMEMBFE1
runmqsc QMEMBFE1 <<!
def ql(1051000001_5) defpsist(yes) maxdepth(20000) replace
def ql(1051000001_6) defpsist(yes) maxdepth(20000) replace
alter ql(1051000001_5) BOTHRESH(3) BOQNAME(ERRMSG)
alter ql(1051000001_6) BOTHRESH(3) BOQNAME(ERRMSG)
def qr(1051000001_7) rname(1051000001_3) rqmname(QMEMBFE) xmitq(QM1051000000) defpsist(yes) replace
def qr(1051000001_8) rname(1051000001_4) rqmname(QMEMBFE) xmitq(QM1051000000) defpsist(yes) replace
def ql(QM1051000000) usage(XMITQ) defpsist(YES) maxdepth(500000) trigger trigtype(FIRST) trigdata(QMEMBFE.1051000001) initq(SYSTEM.CHANNEL.INITQ) replace
def chl(QMEMBFE.1051000001) chltype(SDR) discint(1800) conname('128.192.179.7(1415)') xmitq(QM1051000000) trptype(tcp) shortrty(10000) shorttmr(30) longtmr(300) longrty(999999999) batchsz(50) replace
def chl(1051000001.QMEMBFE) chltype(rcvr) trptype(tcp)
def listener(QM1051000000) TRPTYPE(TCP) PORT(1414) CONTROL(MANUAL) BACKLOG(0)
START LISTENER(QM1051000000)
至此在兩個機器的mq安裝使用者下分别執行兩個腳本,配置就完成。接下來就是驗證此配置。
在這裡我們還需要編寫一個程式讓MQ隊列本地的資訊放到遠端隊列達到資訊從本地隊列直接傳輸到遠端的本地隊列。是以此程式應該為一個守護程式,監聽以上所建立的四個隊列。由于時間的原因這裡我就不貼出具體的代碼。如果有需要的,請發表評論我以後補充!