IBM MQ 使用指南

2021-08-31 20:31:44 字數 4452 閱讀 1557

隨著計算機網路和分布式應用的不斷發展,遠端訊息傳遞越來越成為應用系統中不可缺少的組成部分。

商業訊息中介軟體的出現保證了訊息傳輸的可靠性,高效率和安全性,同時也減少了系統的開發周期。

目前應用最多的訊息中介軟體產品為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』)+建立傳送方通道

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

建立伺服器連線通道 

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)

1.在\bin (指的是 embeded jms 的安裝目錄)目錄下執行命令(查詢佇列管理器名):

\bin

> dspmq

qmname(was_washyf_server1) status(正在執行)

其中的was_washyf_server1

就是您的佇列管理器名稱

2.在\bin目錄下執行命令(啟動mq指令碼語言環境):

\bin >runmqsc was_washyf_server1

3.開啟管理控制台 > 應用程式伺服器 > > 伺服器元件 > jms 伺服器,找到您要監控的佇列名,在本例中為:testjmsqueue1,所以嵌入式jms中真正應用的佇列名應該為 wq_testjmsqueue1。(其中是指 jms佇列 所在的應用伺服器名)

4.切換到前面的命令列視窗下,執行如下的命令:

dis ql(*)

從列出的全部佇列名中驗證wq_testjmsqueue1的存在

5.在命令列視窗下輸入:

dis ql('wq_testjmsqueue1')

會有如下的輸出:

dis ql('wq_testjmsqueue1')

3 : dis ql('wq_testjmsqueue1')

amq8409: 顯示佇列細節。

process( ) boqname(system.dead.letter.queue)

initq( ) trigdata( )

cluster( ) clusnl( )

queue(wq_testjmsqueue1) crdate(2003-10-23)

crtime(17.11.39) altdate(2003-10-23)

alttime(17.11.39) get(enabled)

put(enabled) defprty(0)

defpsist(no) maxdepth(640000)

maxmsgl(4194304) bothresh(5)

share defsopt(shared)

hardenbo msgdlvsq(priority)

retintvl(999999999) usage(normal)

notrigger trigtype(first)

trigdpth(1) trigmpri(0)

qdepthhi(80) qdepthlo(20)

qdpmaxev(enabled) qdphiev(disabled)

qdploev(disabled) qsvcint(999999999)

qsvciev(none) distl(no)

deftype(predefined) type(qlocal)

scope(qmgr) defbind(open)

ipprocs(1) opprocs(0)

curdepth(0)

請注意curdepth(0)這裡的數字就是當前您佇列裡面的訊息數,ipprocs(1)表示有應用正在監控這

個佇列6.如果,有應用正在監控這個佇列把使用這個佇列的應用停止。

7.在命令列視窗下輸入:

clear ql('wq_testjmsqueue1')

8 : clear ql('wq_testjmsqueue1')

amq8022: websphere mq 佇列已清除。

8.退出命令列使用 end 命令。

檢視queue的message的內容

第一種方式:使用/opt/mqm/samp/bin/amqsget 佇列 的名稱 和 佇列管理器

第二種方式:使用/opt/mqm/samp/bin/amqsbcg

IBM MQ 使用指南

隨著計算機網路和分布式應用的不斷發展,遠端訊息傳遞越來越成為應用系統中不可缺少的組成部分。商業訊息中介軟體的出現保證了訊息傳輸的可靠性,高效率和安全性,同時也減少了系統的開發周期。目前應用最多的訊息中介軟體產品為ibm mqseries。東風生管系統就是通過mq 通訊的。本文就針對mq的基本操作與配...

IBM MQ 使用指南

隨著計算機網路和分布式應用的不斷發展,遠端訊息傳遞越來越成為應用系統中不可缺少的組成部分。商業訊息中介軟體的出現保證了訊息傳輸的可靠性,高效率和安全性,同時也減少了系統的開發周期。目前應用最多的訊息中介軟體產品為ibm mqseries。東風生管系統就是通過mq 通訊的。本文就針對mq的基本操作與配...

IBM MQ 使用指南

隨著計算機網路和分布式應用的不斷發展,遠端訊息傳遞越來越成為應用系統中不可缺少的組成部分。商業訊息中介軟體的出現保證了訊息傳輸的可靠性,高效率和安全性,同時也減少了系統的開發周期。目前應用最多的訊息中介軟體產品為ibm mqseries。東風生管系統就是通過mq 通訊的。本文就針對mq的基本操作與配...