隨著計算機網路和分布式應用的不斷發展,遠端訊息傳遞越來越成為應用系統中不可缺少的組成部分。商業訊息中介軟體的出現保證了訊息傳輸的可靠性,高效率和安全性,同時也減少了系統的開發周期。
目前應用最多的訊息中介軟體產品為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)
清除佇列中的所有訊息1.在\bin (指的是 embeded jms 的安裝目錄)目錄下執行命令(查詢佇列管理器名):clear qlocal(qname)
\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的基本操作與配...