隨着計算機網絡和分佈式應用的不斷髮展。遠程消息傳遞愈來愈成爲應用系統中必不可少的組成部分。 商業消息中間件的出現保證了消息傳輸的可靠性,高效率和安全性,同一時候也下降了系統的開發週期。安全
眼下應用最多的消息中間件產品爲IBM MQSeries。 東風生管系統就是經過MQ 通信的。 網絡
本文就針對MQ的基本操做與配置進行具體的闡述,但願對讀者有所幫助。
一.MQ基本操做
MQ中有幾個很是重要的組件:隊列管理器(QueueManager)、隊列(Queue)和通道(Channel)。其主要的操做方法例如如下:
建立隊列管理器 crtmqm –q QMgrName
-q是指建立缺省的隊列管理器
刪除隊列管理器
dltmqm QmgrName
啓動隊列管理器
strmqm QmgrName
假設是啓動默認的隊列管理器,可以不帶其名字
中止隊列管理器
endmqm QmgrName 受控中止
endmqm –i QmgrName 立刻中止
endmqm –p QmgrName 強制中止
顯示隊列管理器 dspmq –m QmgrName
執行MQSeries命令 runmqsc QmgrName 假設是默認隊列管理器,可以不帶其名字
往隊列中放消息 amqsput QName QmgrName 假設隊列是默認隊列管理器中的隊列。可以不帶其隊列管理器的名字
從隊列中取出消息 amqsget QName QmgrName 假設隊列是默認隊列管理器中的隊列,可以不帶其隊列管理器的名字
啓動通道 runmqchl –c ChlName –m QmgrName
啓動偵聽 runmqlsr –t TYPE –p PORT –m QMgrName
中止偵聽 endmqlsr -m QmgrName
MQSeries命令
定義死信隊列 DEFINE QLOCAL(QNAME) DEFPSIST(YES) REPLACE
設定隊列管理器的死信隊列 ALTER QMGR DEADQ(QNAME)
定義本地隊列 DEFINE QL(QNAME) REPLACE
定義別名隊列 DEFINE QALIAS(QALIASNAME) TARGQ(QNAME)
遠程隊列定義 DEFINE QREMOTE(QRNAME) + RNAME(AAA) RQMNAME(QMGRNAME) + XMITQ(QTNAME)
定義模型隊列 DEFINE QMODEL(QNAME) DEFTYPE(TEMPDYN)
定義本地傳輸隊列 DEFINE QLOCAL(QTNAME) USAGE(XMITQ) DEFPSIST(YES) + INITQ(SYSTEM.CHANNEL.INITQ)+ PROCESS(PROCESSNAME) REPLACE
建立進程定義 DEFINE PROCESS(PRONAME) + DESCR(‘STRING’)+ APPLTYPE(WINDOWSNT)+ APPLICID(’ runmqchl -c SDR_TEST -m QM_ TEST’) 當中APPLTYPE的值可以是:CICS、UNIX、WINDOWS、WINDOWSNT等
建立發送方通道 DEFINE CHANNEL(SDRNAME) CHLTYPE(SDR)+ CONNAME(‘100.100.100.215(1418)’) XMITQ(QTNAME) REPLACE 當中CHLTYPE可以是:SDR、SVR、RCVR、RQSTR、CLNTCONN、SVRCONN、CLUSSDR和CLUSRCVR。
建立接收方通道 DEFINE CHANNEL(SDR_ TEST) CHLTYPE(RCVR) REPLACE
建立server鏈接通道 DEFINE CHANNEL(SVRCONNNAME) CHLTYPE(SVRCONN) REPLACE
顯示隊列的所有屬性 DISPLAY QUEUE(QNAME) [ALL]
顯示隊列的所選屬性 DISPLAY QUEUE(QNAME) DESCR GET PUT DISPLAY QUEUE(QNAME)MAXDEPTH CURDEPTH
顯示隊列管理器的所有屬性 DISPLAY QMGR [ALL]
顯示進程定義 DISPLAY PROCESS(PRONAME)
更改屬性 ALTER QMGR DESCR(‘NEW DESCRIPTION’) ALTER QLOCAL(QNAME) PUT(DISABLED) ALTER QALIAS(QNAME) TARGQ(TARGQNAME)
刪除隊列 DELETE QLOCAL(QNAME) DELETE QREMOTE(QRNAME)
清除隊列中的所有消息 CLEAR QLOCAL(QNAME)