Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Ibm mq 尝试在DLQ中浏览消息时获取mqrc 2080_Ibm Mq - Fatal编程技术网

Ibm mq 尝试在DLQ中浏览消息时获取mqrc 2080

Ibm mq 尝试在DLQ中浏览消息时获取mqrc 2080,ibm-mq,Ibm Mq,我试图在DLQ中浏览邮件,但出现2080错误 请分享您在这个问题上的专业知识 1:root@hostname:/root # ./amqsbcg SYSTEM.DEAD.LETTER.QUEUE QM.ABCDEFG AMQSBCG0 - starts here ********************** MQOPEN - 'SYSTEM.DEAD.LETTER.QUEUE' MQGET 1, failed with CompCode:1 Reason:2080 MQCLOSE

我试图在DLQ中浏览邮件,但出现2080错误

请分享您在这个问题上的专业知识

1:root@hostname:/root # ./amqsbcg SYSTEM.DEAD.LETTER.QUEUE QM.ABCDEFG

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

 MQOPEN - 'SYSTEM.DEAD.LETTER.QUEUE'

 MQGET 1, failed with CompCode:1 Reason:2080
 MQCLOSE
 MQDISC1:root@hostname:/root # mqrc 2080

      2080  0x00000820  MQRC_TRUNCATED_MSG_FAILED

amqsbcg是一个示例MQ程序,在安装开发工具时随MQ一起提供。amqsbcg(amqsbcg0.c)的源位于/opt/mqm/samp/目录中

如果您查看来源,您将在第137行看到:

因此,任何大于65536字节的消息都将导致MQ返回2080的RC(MQRC_TRUNCATED_MSG_FAILED),而您的消息似乎大于65536字节

因此,您有一些选择:

  • 获取amqsbcg0.c的副本,使用更大的值进行更新, 编译并链接它
  • 使用MQ资源管理器的浏览功能
  • 使用供应商工具,如 查看死信队列

  • 尝试MQ V8及更高版本附带的
    dmpmqmsg
    实用程序

    以下调用作为示例

    dmpmqmsg -m QM.ABCDEFG -i SYSTEM.DEAD.LETTER.QUEUE -f myfile.txt
    

    这将在MQMD转储后为您提供消息的十六进制转储。amqsbcg也只会给您消息的十六进制转储,因此在这两种情况下,您仍然必须从十六进制消息中选择DLQ原因码。

    我尝试了您提到的方法。我编辑了文件,保存了它。但我不确定什么是“编译”。如果这是一个简单的过程,请您在这里解释一下。@Rinak-“编译和链接”是一个术语,用于描述将一些“C”语言代码(即示例amqsbcg0.C)构建到可以运行的可执行文件中(即amqsbcg.exe)。你熟悉什么编程语言?@Morag Hughson:不幸的是,我不懂任何编程语言。@Rinak-真遗憾。我计划将“compile&link”翻译成您熟悉的编程语言所使用的任何措辞。只需说一句,用代码编写的程序通常以一个文本文件的形式启动,如您看到和编辑的amqsbcg0.c。但是,对于某些编程语言,它不能直接从此文本文件运行。文本文件需要经过一个过程才能转换为可执行程序,在本例中为amqsbcg.exe。这个过程在这里被称为“编译和链接”。该过程使用“编译器”完成。建议您查找这些术语。编辑上面的答案以包括MQ Explorer@Rinak您也安装了吗?我会在MQ8上尝试,但服务器仍然有MQ7.1.0.8版本。感谢您对dmpmqmsg的改进。使用V8安装一个客户端,然后在那里使用它。@MoragHughson奇怪的是,我注意到Redist客户端中不包括
    dmpmqmsg
    ,它确实包括其他方便的工具,如
    dmpmqcfg
    runmqsc
    。你知道完整客户端中包含了
    dmpmqmsg
    吗?你问@JoshMc是对的,我不确定,只是希望如此。我本来希望
    dmpmqmsg
    住在
    dmpmqcfg
    住过的任何地方,因为它们是同一个问题的两部分-抓取配置和抓取消息。也许这需要一个RFE。
    dmpmqmsg -m QM.ABCDEFG -i SYSTEM.DEAD.LETTER.QUEUE -f myfile.txt