2013-10-12 197 views
2

我在Windows Server 2008計算機上運行IBM Websphere MQ。 現在我想知道如何查看特定隊列中的消息內容,例如:IBM Websphere MQ - 查看隊列中的消息

SYSTEM.DEAD.LETTER.QUEUE中有2條消息。我如何查看這些消息,以便我可以看到他們有什麼問題?

我閱讀了關於IBM的網站上,你可以做這樣的:

C:\Program Files (x86)\IBM\WebSphere MQ\tools\c\Samples\Bin>amqsbcg SYSTEM.DEAD.LETTER.QUEUE 
TLINKTT.QMAN 

但是當我運行它,我得到以下錯誤:

AMQSBCG0 - starts here 
********************** 

MQOPEN - 'SYSTEM.DEAD.LETTER.QUEUE' 

MQGET 1, failed with CompCode:2 Reason:2016 
MQCLOSE 
MQDISC 

這是因爲隊列正在使用?當隊列正在使用時,我還能如何查看隊列中的消息?

由於

回答

4

一個好的技巧對於大多數MQ返回碼是通過MQRC,例如運行它們運行「MQRC 2016」

2016 0x000007e0 MQRC_GET_INHIBITED

所以2016意味着隊列已經被配置爲防止消息被下車隊列(被被抑制)。一個瀏覽(例如amqsbcg)只是對MQOO_BROWSE開放,然後通過瀏覽(例如MQGMO_BROWSE_NEXT)進行瀏覽。所以這裏的問題並不在於隊列正在被使用,更多的是系統管理員已經阻止了人們獲得以該隊列結束的消息。

要運行例如amqsbcg反對它,您將需要啓用獲取第一個... runmqsc ALTER隊列,獲取ENABLED啓用獲取,或使用資源管理器GUI執行相同操作。一旦完成後將其重新設置爲禁用可能是有意義的,因此您在發現它時將其保留。

+0

謝謝你傑森。不知道如何在你的答案中使用這些命令:例如runmqsc ALTER隊列 - 你是否像這樣運行它,或者用隊列名稱替換「隊列」? – DextrousDave

+0

首先在命令行中運行'runmqsc <您的qmgr名稱>'命令。這將打開一個MQ shell。在shell提示符下運行'alter ql(SYSTEM.DEAD.LETTER.QUEUE)get(ENABLED)'。 – Shashi