IBM MQ 使用以及常見問題集錦

消息隊列+發送隊列+消息通道

接收通道名稱與發送端的發送通道名稱要一致,修改通道信息後要執行 start channle(chlname) 重啟通道。
常用的MQ命令
/* MQ創建 */
顯示隊列管理器 dspmq
進入隊列管理器控制台 runmqsc 隊列管理器名
顯示通道狀態 dis chs(*)
顯示通道 dis chl(*)

啟動mq通道報錯如下信息,為CCSID錯誤
The local and remote queue managers do not agree on the next message sequence
number. A message with sequence number 214 has been sent when sequence number
使用命令重置CCSID可行reset chl(MBA.MBFEA) seqnum(819)

STATUS(BINDING)
主要是看mqm
創建mq: crtmqm -q qmgrname
-q是指創建預設的隊列管理器

刪除mq: dltmqm qmgrname
啟動mq: strmqm qmgrname
停止mq: endmqm qmgrname 受控停止
endmqm -i qmgrname 立即停止
endmqm -p qmgrname 強制停止
顯示隊列管理器 dspmq -m qmgrname
運行mqseries命令(啟動用於運行隊列管理器MQSC命令的控制台(runmqsc)) runmqsc qmgrname
往隊列中放消息 amqsput qname qmgrname
從隊列中取消息 amqsget qname qmgrname
啟動通道 runmqchl -c ChlName -m QmgrName
啟動偵聽 runmqlsr -t Type -p Port -m QMgrName
停止偵聽 endmqlsr -m QmgrName
MQSeries命令
顯示隊列的所有屬性 DISPLAY QUEUE (QName) [ALL]
顯示隊列的所選屬性 DISPLAY QUEUE (QName)DESCR GET PUT
DISPLAY QUEUE (QName)MAXDEPTH CURDEPT

顯示隊列管理器的所有屬性 DISPLAY QMGR[ALL]
mq配置信息:根目錄的mqs.ini(mq配置文件) qm.ini(隊列管理器配置文件,它的屬性僅影響某個隊列管理器,在節點中的每個隊列管理器都有一個qm.ini,所在目錄 ./pmts/qmgrs/QMUMBFEA/qm.ini)
查看通道狀態
DISPLAY CHSTATUS(*) CURRENT

MQ屬性
隊列管理器名稱、隊列、進程、名稱列表、群集、認證信息對象 最長48個字元,通道名最長20個字元,隊列名區分大小寫,所有控制命令區分大小寫
USAGE(NORMAL/XMITQ):
BOTHRESH 和 BOQNAME屬性:當處理backout消息時,
如4 中所言,如果某個消息是在同步點控制之下讀取的,並且由於某種原因消息被回滾,消息描述符中的BackoutCount欄位的值將被加1,你需要判斷該數值,如果它大於某個閾值,你需要使用其它手段來處理該消息。在處理該消息的應用中,你可以將其與設定的閾值做比較,這時,閾值會被寫死在程序中,為了提高其靈活性,你可以使用隊列的BOTHRESH 和 BOQNAME屬性。這樣,你可以在例外處理中,利用MQINQ查詢得到閾值的大小,如果超出,可以將消息轉發到BOQNAME指定的隊列中,繼而對該隊列進行相應的處理。這種方法大大增強了應用程序的靈活性。
DESCR:描述
MAXMSGL:消息大小
隊列管理器MAXMSGL,默認值:4M,可以調整範圍:32K – 100M;
通道MAXMSGL,默認值:4M,可以調整範圍:0-隊列管理器MAXMSGL;
隊列MAXMSGL,默認值:4M,可以調整範圍:0-隊列管理器MAXMSGL;
使用alter命令,即可對其MAXMSGL進行修改。
三者之間的關係:
隊列管理器MAXMSGL>=隊列MAXMSGL;
通道MAXMSGL:
隊列MAXMSGL:僅對本地隊列和模型隊列有效,表示隊列中可以容納的最大消息長度,這個屬性的調整範圍在各個平台上的上限是不一樣的。通道在建立 的時候會有一個握手過程,雙方會交換各自通道定義上的MAXMSGL,最後協商出通道使用的最大消息長度,一般會取雙方定義中較小的那一個。
系統預設對象:
系統預設對象是一組每次創建隊列管理器時自動創建的對象定義。您可以複製和修改這些對象定義中的任何一個,以在安裝時用於應用程序。
預設對象名具項SYSTEM.DEFAULT;例如,預設本地隊列是SYSTEM.DEFAULT.LOCAL.QUEUE,並且預設接收方通道是SYSTEM.DEFAULT.RECEIVER。您無法重命名這些對象;這些名稱的預設對象是必需的。
當您定義對象時,從相應的預設對象複製您不明確指定的任何屬性。例如,如果您定義本地隊列,則從預設隊列SYSTEM.DEFAULT.LOCAL.QUEUE 獲取您未指定的那些屬性。
請參閱附錄1, “系統和預設對象”以獲取關係統預設的更多信息。

——————————————————————————————————————————————-
win下使用 dspmq.exe

uninx/linux 下
#su – mqm
#dspmq

最近在配置MQ,記下了一些常用的MQ命令,如下:

創建隊列管理器
crtmqm –q QMgrName

刪除隊列管理器
dltmqm QmgrName

啟動隊列管理器
strmqm QmgrName
如果是啟動默認的隊列管理器,可以不帶其名字

停止隊列管理器
endmqm QmgrName 受控停止
endmqm –i QmgrName 立即停止
endmqm –p QmgrName 強制停止

顯示隊列管理器
dspmq –m QmgrName

往隊列中放消息
amqsput QName QmgrName
如果隊列是默認隊列管理器中的隊列,可以不帶其隊列管理器的名字

從隊列中取出消息
amqsget QName QmgrName
如果隊列是默認隊列管理器中的隊列,可以不帶其隊列管理器的名字

啟動通道
runmqchl –c ChlName –m QmgrName

啟動偵聽
runmqlsr –t TYPE –p PORT –m QMgrName

停止偵聽
endmqlsr -m QmgrName

下面是在MQ環境中可以執行的MQ命令(即在runmqsc環境下可以敲的命令)

定義持久信隊列
DEFINE QLOCAL(QNAME) DEFPSIST(YES) REPLACE
DEFPSIST:隊列中消息持久性默認值。
NO 該隊列上的消息在隊列管理器重新啟動時丟失
YES 該隊列上的消息在隊列管理器重新啟動時保存了下來。
關於消息在隊列中的保存時間:消息在隊列的保存時間與個設置關:隊列defpsist屬性、消息Persistence持久性屬性和消息Expiry消息到期時間屬性,其中隊列defpsist 屬性是在創建隊列時設置,消息Persistence和Expiry屬性是應用程序往隊列放入消息時指定。消息本身的Persistence值優先於隊列defpsist值。Expiry指消息到期 時間,即經過指定的時間後,消息如果還沒被取走,此消息將過期(無效。消息過期後,可能會自動從隊列中刪除(取決於不同操作系統的MQ實現。對於非持久性消息, 即使Expiry設為永不過期,重啟隊列管理器時,消息也將丟失。

定義隊列允許的最大消息數目
MAXDEPTH
maxdepth:隊列上允許的最大消息數;

設定隊列管理器的持久信隊列
ALTER QMGR DEADQ(QNAME)

定義本地隊列
DEFINE QL(QNAME) REPLACE

定義別名隊列
DEFINE QALIAS(QALIASNAME) TARGQ(QNAME)

遠程隊列定義
DEFINE QREMOTE(QRNAME) +
RNAME(AAA) RQMNAM)E(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

創建伺服器連接通道
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)

以下是一些高級配置的命令:
amqmcert 配置SSL證書
amqmdain 配置windows上的MQ服務
crtmqcvx 轉換數據
dmpmqaut 轉儲對象許可權管理
dmpmqlog 轉儲日誌管理
dspmq 顯示隊列管理器
dspmqaut 顯示打開對象的許可權
dmpmqcap 顯示處理程序容量和處理程序數
dspmqcsv 顯示命令伺服器狀態
dspmqfls 顯示文件名
dspmqtrc 跟蹤MQ輸出(HP-UNIX LINUX Solaris)
dspmqrtn 顯示事務的詳細信息
endmqcsv 停止隊列管理器上的命令伺服器
strmqcsv 啟動隊列管理器上的命令伺服器
endmqtrc 停止跟蹤
rcdmqimg 向日誌寫對象的映像
rcmqobj 根據日誌中的映像重新創建一個對象
rsvmqtrn 提交或逆序恢復事務

MQ 控制命令的參考信息。
addmqinf
添加 WebSphere MQ 配置信息(僅限於 Windows? 和 UNIX 平台)。
amqccert
檢查不完整的證書鏈(僅限於 Windows)。
amqmdain
配置或控制 WebSphere MQ 服務控制(僅限於 Windows)。
amqmfsck(文件系統檢查)
檢查文件系統是否與 POSIX 標準一致並能夠共享隊列管理器數據以支持多實例隊列管理器。
amqtcert
從 WebSphere MQ 5.3 或 5.3.1 遷移證書(僅限於 Windows)。
crtmqcvx
根據數據類型結構來創建數據轉換代碼。
crtmqm
創建隊列管理器。
dltmqm
刪除隊列管理器。
dmpmqaut
轉儲一組 WebSphere MQ 對象類型和概要文件的當前許可權列表。
dmpmqlog
顯示並格式化 WebSphere MQ 系統日誌的部分內容。
dspmq
顯示關於隊列管理器的信息。
dspmqaut
dspmqaut 顯示特定 WebSphere MQ 對象的許可權。
dspmqcsv
顯示命令伺服器的狀態
dspmqfls
顯示與 WebSphere MQ 對象相對應的文件名。
dspmqinf
顯示 WebSphere MQ 配置信息(僅限於 Windows 和 Unix 平台)。
dspmqrte
確定消息通過隊列管理器網路時採用的路由。
dspmqtrc
格式化並顯示 WebSphere MQ 跟蹤(僅限於 Unix 平台)。
dspmqtrn
顯示不確定的事務。
dspmqver
顯示 WebSphere MQ 版本和構建信息。
endmqcsv
為隊列管理器停止命令伺服器。
endmqlsr
結束隊列管理器的所有偵聽器進程。
endmqdnm
對某個隊列停止 .NET 監視器(僅限於 Windows)。
endmqm
停止隊列管理器或者切換到備用隊列管理器。
endmqtrc
對所跟蹤的某些或全部實體結束跟蹤。
migmbbrk
migmbbrk 命令將發布/預訂配置數據從 WebSphere Event Broker V6.0 或者 WebSphere Message Broker V6.0 或 V6.1 遷移到 WebSphere MQ V7.0.1 或更高版本。
mqftapp
啟動文件傳輸應用程序的圖形界面(僅限於 Windows 和 Linux x86 平台)。
mqftrcv
處理在伺服器上使用 WebSphere MQ 文件傳輸應用程序接收到的文件(僅限於 Windows 和 Linux x86 平台)。
mqftrcvc
處理在客戶機上接收到的文件(僅限於 Windows 和 Linux x86 平台)。
mqftsnd
使用 WebSphere MQ 文件傳輸應用程序從伺服器發送文件(僅限於 Windows 和 Linux x86 平台)。
mqftsndc
使用 WebSphere MQ 文件傳輸應用程序從客戶機發送文件(僅限於 Windows 和 Linux x86 平台)。
rcdmqimg
將一個對象或一組對象的映像寫入日誌,以便進行介質恢復。
rcrmqobj
根據日誌中包含的一個或一組對象的映像來重新創建這些對象。
rmvmqinf
除去 WebSphere MQ 配置信息(僅限於 Windows 和 Unix 平台)。
rsvmqtrn
解決不確定的事務。
runmqchi
運行通道啟動程序進程,以便自動啟動通道。
runmqchl
啟動發送方或請求方通道
runmqdlq
啟動死信隊列處理程序,以便監視和處理死信隊列中的消息。
runmqdnm
使用 .NET 監視器來開始處理某個隊列中的消息(僅限於 Windows)。
runmqlsr
運行偵聽器進程,以便偵聽各種通信協議的遠程請求。
runmqsc
對隊列管理器運行 WebSphere MQ 命令。
runmqtmc
在客戶機上啟動觸發器監視器。
runmqtrm
在伺服器上啟動觸發器監視器。
setmqaut
更改概要文件、對象或對象類的許可權。可以對任意數目的主體或組授予許可權或從中撤銷許可權。
setmqcrl
在 Active Directory 中管理 CRL(證書撤銷列表)LDAP 定義(僅限於 Windows)。
setmqprd
登記 WebSphere MQ 生產許可證。
setmqscp
在 Active Directory 中發布客戶機連接通道定義(僅限於 Windows)。
strmqcfg
啟動 WebSphere MQ 資源管理器(僅限於 Windows 和 Linux x86 平台)。
strmqcsv
為隊列管理器啟動命令伺服器。
strmqm
啟動隊列管理器或者使其準備好執行備用操作。
strmqtrc

以下文章點擊率最高

Loading…

     

如果這文章對你有幫助,請掃左上角微信支付-支付寶,給於打賞,以助博客運營