2013-10-12 152 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