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之間互相傳送訊息。
相關文章
- 實現兩個視窗通訊方法之postMessage
- 實現不同程式之間的通訊
- 作業系統實驗6之訊號量的實現與應用作業系統
- 兩個視窗如何實現通訊
- 8┃音視訊直播系統之 WebRTC 信令系統實現以及通訊核心並實現視訊通話Web
- DPSK通訊系統的FPGA實現FPGA
- 實現多個標籤頁之間通訊的幾種方法
- 實驗二:順序表的基本操作實現及其應用
- 【Spring AOP】暴力打通兩個切面之間的通訊Spring
- 基於 socket.io 快速實現一個實時通訊應用
- Android端實現多人音視訊聊天應用(二):多人視訊通話Android
- 兩個棧實現佇列操作佇列
- Electron實戰之程式間通訊
- CRM系統實現資訊共享如何操作
- Linux系統程式設計之程式間通訊方式:管道(二)Linux程式設計
- 鴻蒙系統應用開發之JS實現一個簡單的List鴻蒙JS
- 在鴻蒙開發中,如何實現一個簡單的應用間通訊(Event Bus)功能?鴻蒙
- 如何實現瀏覽器標籤頁之間的通訊瀏覽器
- 通訊錄管理系統(C++實現)C++
- 如何基於 Flutter 快速實現一個視訊通話應用Flutter
- 通過 App Groups 實現程式間通訊APP
- Linux作業系統 程式之間的通訊Linux作業系統
- Linux系統程式設計之程式間通訊方式:命名管道(二)Linux程式設計
- 樂訊通雲通訊:物聯網路卡在各零售店中的幾個實際應用
- js訊息訂閱和釋出實現元件之間通訊JS元件
- vue工程利用pubsub-js實現兄弟元件之間的通訊VueJS元件
- JavaScript 原型的實際應用之實現一個 jQueryJavaScript原型jQuery
- 用隧道協議實現不同dubbo叢集間的透明通訊協議
- 面試題之【用兩個棧實現佇列】面試題佇列
- 在 OpenResty 裡實現程式間通訊REST
- python實現兩臺不同主機之間進行通訊(客戶端和服務端)——SocketPython客戶端服務端
- webpack實戰(二):真實專案中應用系統配置Web
- C語言實現通訊錄管理系統(結構體、列舉、聯合體應用)C語言結構體
- 【mq】從零開始實現 mq-03-引入 broker 中間人MQ
- SAP Fiori Launchpad 應用的兩個實用技巧分享
- 棧的實際應用
- Windows 中的命名管道(Named Pipes)是一種在程序間進行通訊的機制。它允許兩個或多個程序之間透過檔案系統的一個特殊路徑進行通訊,從而實現資料的傳輸和共享。Windows
- 手把手教你用redis實現一個簡單的mq訊息佇列(java)RedisMQ佇列Java