2

我在 Windows Server 2008 机器上运行 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

1 回答 1

4

大多数 MQ 返回码的一个很好的提示是通过 mqrc 运行它们,例如运行“mqrc 2016”

2016 0x000007e0 MQRC_GET_INHIBITED

所以 2016 意味着队列已配置为防止消息从队列中取出(禁止获取)。浏览(例如 amqsbcg)只是 MQOO_BROWSE 的打开,然后通过浏览获得(例如 MQGMO_BROWSE_NEXT)。所以这里的问题不是队列正在使用,更多的是系统管理员阻止人们获取最终到达该队列的消息。

要针对它运行例如amqsbcg,您需要先启用gets...运行mqsc ALTER 队列,获取ENABLED 以启用gets,或使用资源管理器GUI 来执行相同操作。完成后将其恢复为禁用状态可能是有意义的,因此您可以按原样保留它。

于 2013-10-12T21:49:00.937 回答