MQ命令行列出消息堆积的队列

  • Post author:
  • Post category:其他


今天一个业务人员测试的环境出了点问题,问题是这个网络还是隔离的,远程登录不了,现场的机器没装MQ浏览器,这下可有点棘手了。

查问题呗,看看是否有堵得消息,只能用命令行来查了:

echo ‘display queue(*) CURDEPTH WHERE(CURDEPTH NE 0)’ | runmqsc 【QMNAME】

死信队列与超时队列:

现在项目中的ESB对超时消息的处理是放入一个队列中,然后java记录日志;

死信队列里是ESB放入的不是手工放入的貌似

下面是一些网上的说辞

超时的消息不会放到死信队列里。

放到死信队列里的消息都会被加上一个死信头,死信头里有一个字段是引起这条消息被放到死信队列里的原因码,基本上引起一个MQI操作失败的原因码都有可能在这里出现,含义和范围也就是和MQPUT/MQGET失败的原因码一样的。常见的原因有队列满了、队列被禁止写入消息。

管理超时消息

答案是可以的,在放置消息的时候除了指定超时以外,还指定一个要求队列管理生成报告消息的选项,并且指定报告的类型是超时,不要忘记了指定replytoq 和replytoqm ,这样每当有超时的消息被删除的时候,队列管理器就会生成一条报告消息,放到你指定的队列管理器,也就是replytoqm 的队列replytoq里面了,可以指定生成的报告消息的消息体,是复制原消息的头100个字节,还是复制整条消息。具体使用查一下MQ的编程手册吧。



版权声明:本文为baidu_34051990原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。