我试图浏览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
答案 0 :(得分:1)
尝试MQ V8及更高版本附带的dmpmqmsg
实用程序。
以下调用为例......
dmpmqmsg -m QM.ABCDEFG -i SYSTEM.DEAD.LETTER.QUEUE -f myfile.txt
这将在转出MQMD后为您提供消息的十六进制转储。 amqsbcg也只会给你一个消息的十六进制转储,因此在这两种情况下你仍然需要从十六进制消息中选择你的DLQ原因代码。
答案 1 :(得分:0)
amqsbcg是安装开发工具时MQ附带的示例MQ程序。 amqsbcg(amqsbcg0.c)的源代码位于/ opt / mqm / samp /目录中。
如果您查看来源,您将在第137行看到
#define BUFFERLENGTH 65536 /* Max length of message accepted */
因此,任何大于65536字节的消息都将导致MQ返回RC为2080(MQRC_TRUNCATED_MSG_FAILED),其消息似乎大于65536字节。
因此,您有一些选择: