MQ實現兩個應用系統之間的通訊-----實際操作(二)
轉載自:https://blog.csdn.net/spring_model/article/details/52794191
主要用於學習
使用IBM WebSphere MQ實現兩個應用系統之間通訊。兩個應用系統都必須安裝MQ伺服器,只有雙方都安裝了MQ同時也建立佇列管理器,而且雙方都啟動MQ的佇列管理器才可以實現通。
這裡以A <------->B 作為通訊雙方。
A方建立佇列管理器和相應的佇列用於通訊
#建立佇列管理器
env MQSPREFIX=/var/mqm/ crtmqm -ld /var/mqm/qmgrs/log -lc -lf 16384 -lp 20 -ls 2 QMU5810A
#啟動佇列管理器
strmqm QMU5810A
#進入佇列管理器命令列
runmqsc QMU5810A
#建立本地佇列(用於A方在本地取訊息)
DEF QL(MSGCCPC_1) MAXDEPTH(100000) DEFPSIST(yes) MAXMSGL(4096000) REPLACE
##建立死信佇列
DEF QL(DEADQ) MAXDEPTH(290000) DEFPSIST(yes) REPLACE
ALTER QMGR DEADQ(DEADQ)
#建立監聽器(監聽自己主機用於接收訊息的埠)
DEF LISTENER(LSNRPMTS) TRPTYPE(TCP) PORT(1428) BACKLOG(0) CONTROL(QMGR)
#啟動監聽器
START LISTENER(LSNRPMTS)
#建立本地傳輸佇列(用於本地佇列實現訊息之間的傳輸)
DEF QL(XM2900A) USAGE(XMITQ) MAXDEPTH(290000) TRIGGER TRIGTYPE(FIRST) INITQ(SYSTEM.CHANNEL.INITQ) DEFPSIST(yes) MAXMSGL(10240000) TRIGDATA(313231000013B.MBFEB) REPLACE
#建立傳送通道(傳送通道名稱必須和對方接受通道名稱一致)
#LOCLADDR對應本地機器的IP地址
#CONNAME為目標主機的IP地址和埠號
#XMITQ為本地傳輸佇列
#建立傳送通道
DEF CHL(313231000013B.MBFEB) CHLTYPE(SDR) LOCLADDR(192.168.0.50) CONNAME('192.168.0.100(1426)') XMITQ(XM2900A) TRPTYPE(tcp) MAXMSGL(10240000) DISCINT(0) SHORTRTY(10000) SHORTTMR(30) LONGTMR(300) LONGRTY(999999999) BATCHSZ(50) REPLACE
#啟動傳送通道
START CHL(313231000013B.MBFEB)
#建立遠端佇列(當給B傳送訊息時直接發到遠端佇列裡)
#RNAME對應對方MQ的本地佇列;
#RQMNAME對應對方MQ的佇列管理器
#XMITQ為本地的傳輸佇列
#建立遠端佇列(主要用於和對方佇列通訊)
DEF QR(MSGCCPC_2) RNAME(MSGCCPC_BANK_1) RQMNAME(QMU5810A_BANK) XMITQ(XM2900A) DEFPSIST(yes) REPLACE
#建立接收通道(接收通道和對方MQ的傳送通道名稱一致)
DEF CHL(MBFEB.313231000013B) CHLTYPE(RCVR) TRPTYPE(tcp) MAXMSGL(10240000) REPLACE
#建立服務通道(不能和對方服務通道同名稱)
DEFINE CHANNEL(DC.SVRCONN) CHLTYPE(SVRCONN) REPLACE
至此,A方的佇列管理器和佇列通道等資訊都已經建立好
########################################################################################
建立B方的佇列管理器和佇列名稱等資訊。
#建立佇列管理器
env MQSPREFIX=/var/mqm/ crtmqm -ld /var/mqm/qmgrs/log -lc -lf 16384 -lp 20 -ls 2 QMU5810A_BANK
#啟動佇列管理器
strmqm QMU5810A_BANK
#進入佇列管理器命令列
runmqsc QMU5810A_BANK
#建立本地佇列(用於B方在本地取訊息)
DEF QL(MSGCCPC_BANK_1) MAXDEPTH(100000) DEFPSIST(yes) MAXMSGL(4096000) REPLACE
#建立監聽器(監聽自己B方接收訊息的埠)
DEF LISTENER(LSNRPMTS_BANK) TRPTYPE(TCP) PORT(1426) BACKLOG(0) CONTROL(QMGR)
#啟動監聽器
START LISTENER(LSNRPMTS_BANK)
#建立本地傳輸佇列(用於B方本地間本地佇列訊息的傳遞)
DEF QL(XM2900A_BANK) USAGE(XMITQ) MAXDEPTH(290000) TRIGGER TRIGTYPE(FIRST) INITQ(SYSTEM.CHANNEL.INITQ) DEFPSIST(yes) MAXMSGL(10240000) TRIGDATA(MBFEB.313231000013B) REPLACE
#建立傳送通道(傳送通道名稱和對方接受通道名稱一致)
#LOCLADDR對應本地機器的IP地址
#CONNAME為對方主機的IP地址和埠號
#XMITQ為本地傳輸佇列
#建立傳送通道
DEF CHL(MBFEB.313231000013B) CHLTYPE(SDR) LOCLADDR(192.168.0.100) CONNAME('192.168.0.50(1428)') XMITQ(XM2900A_BANK) TRPTYPE(tcp) MAXMSGL(10240000) DISCINT(0) SHORTRTY(10000) SHORTTMR(30) LONGTMR(300) LONGRTY(999999999) BATCHSZ(50) REPLACE
#啟動傳送通道
START CHL(MBFEB.313231000013B)
#建立遠端佇列(當給A傳送訊息時,直接發到這個遠端佇列,A取訊息時直接在A的本地佇列取)
#RNAME對應對方MQ的本地佇列;
#RQMNAME對應對方MQ的佇列管理器
#XMITQ為本地的傳輸佇列
#建立遠端佇列;
DEF QR(MSGCCPC_BANK_2) RNAME(MSGCCPC_1) RQMNAME(QMU5810A) XMITQ(XM2900A_BANK) DEFPSIST(yes) REPLACE
#建立接收通道(接收通道和對方MQ的傳送通道名稱一致)
DEF CHL(313231000013B.MBFEB) CHLTYPE(RCVR) TRPTYPE(tcp) MAXMSGL(10240000) REPLACE
**建立服務通道(不能和對方服務通道同名稱)
DEFINE CHANNEL(BANK.SVRCONN) CHLTYPE(SVRCONN) REPLACE
至此,B方的佇列管理器和對列已經建立好。接下來就是除錯雙方正常工作,發互相傳送訊息。請看下一篇文章,MQ之間互相傳送訊息。
相關文章
- 在如何實現兩個JBoss之間的訊息通訊?
- 在同一個Activity下實現兩個Fragment之間的通訊Fragment
- 實現不同程式之間的通訊
- 實現兩個視窗通訊方法之postMessage
- 兩個有名管道實現qq通訊
- 兩個視窗如何實現通訊
- 作業系統實驗6之訊號量的實現與應用作業系統
- 8┃音視訊直播系統之 WebRTC 信令系統實現以及通訊核心並實現視訊通話Web
- Framework 原始碼解析知識梳理(3) 應用程式之間的通訊實現Framework原始碼
- 用NSConnection實現不同程式間的通訊
- 實現多個標籤頁之間通訊的幾種方法
- 利用SMTP虛擬伺服器實現不同郵件系統之間的通訊伺服器
- 基於 socket.io 快速實現一個實時通訊應用
- 實驗二:順序表的基本操作實現及其應用
- 作業系統程式之間的通訊作業系統
- 程式間通訊的另類實現
- Electron實戰之程式間通訊
- 【Spring AOP】暴力打通兩個切面之間的通訊Spring
- 通訊錄管理系統(C++實現)C++
- Android探索之AIDL實現程式間通訊AndroidAI
- Android端實現多人音視訊聊天應用(二):多人視訊通話Android
- 鴻蒙系統應用開發之JS實現一個簡單的List鴻蒙JS
- liunx使用者空間和核心空間之間的通訊實現(在PPC下的實現)(轉)
- 如何實現瀏覽器標籤頁之間的通訊瀏覽器
- 如何基於 Flutter 快速實現一個視訊通話應用Flutter
- 兩個棧實現佇列操作佇列
- 使用AIDL實現程式間的通訊AI
- js訊息訂閱和釋出實現元件之間通訊JS元件
- 樂訊通雲通訊:物聯網路卡在各零售店中的幾個實際應用
- Linux系統程式設計之程式間通訊方式:管道(二)Linux程式設計
- xmpp實現的即時通訊聊天(二)
- 通過 App Groups 實現程式間通訊APP
- 面試題之【用兩個棧實現佇列】面試題佇列
- vue工程利用pubsub-js實現兄弟元件之間的通訊VueJS元件
- 在 OpenResty 裡實現程式間通訊REST
- SWING 應用如何實現JAAS,與容器通訊
- Linux作業系統 程式之間的通訊Linux作業系統
- 用隧道協議實現不同dubbo叢集間的透明通訊協議