【发布时间】:2013-11-06 16:06:29
【问题描述】:
我对 MQ 不熟悉,所以如果我没有正确解释自己,请原谅我。我们在队列上收到一条消息,该消息在读取时失败,并带有 2110 MQRC_FORMAT_ERROR。似乎问题在于它没有指定“格式”,例如我们期待“MQSTR”。客户端代码 (C#) 正在捕获 MQException 并执行 MQQueueManager.Backout() 但是消息只是回到队列中并被客户端再次读取和拒绝。
查看队列,我发现它没有设置回退队列或回退阈值。队列管理器也没有设置死信队列。所以我所做的是设置 DLQ 并将队列的回退队列设置为它,回退阈值为 5。但是消息仍然卡在队列上,被不断读取和放回。消息的回退计数目前接近 2000 万。
我想让回退和 DLQ 正常工作,但如果有另一种方法可以手动删除或移动此消息,现在会有帮助。这只是一条测试消息,所以丢失也没关系。
编辑:我必须清理队列才能让事情顺利进行,所以不幸的是,在它再次发生之前可能无法测试任何解决方案。
【问题讨论】:
标签: ibm-mq