【问题标题】:IBM Websphere MQ - Viewing Messages in a QueueIBM Websphere MQ - 查看队列中的消息
【发布时间】:2013-10-20 11:18:20
【问题描述】:

我在 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 

这是因为队列正在使用吗?当队列正在使用时,我还能如何查看队列中的消息?

谢谢

【问题讨论】:

    标签: ibm-mq


    【解决方案1】:

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

    2016 0x000007e0 MQRC_GET_INHIBITED

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

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

    【讨论】:

    • 谢谢杰森。不确定如何在您的答案中使用命令:例如 runmqsc ALTER queue - 您是这样运行它还是用您的队列名称替换 'queue'?
    • 首先在命令 shell 中运行 'runmqsc ' 命令。这将打开一个 MQ 外壳。在 shell 提示符下运行“alter ql(SYSTEM.DEAD.LETTER.QUEUE) get(ENABLED)”。
    猜你喜欢
    • 2016-02-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-10-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多