我通过本地绑定从MQ队列读取MDB。有时我们会注意到MQ队列中的消息未被提取队列深度增加到50000,实例数变为零。执行线程总数为25.物理机中有8个托管服务器。
答案 0 :(得分:1)
这听起来像是一个有毒的消息问题。如果队列中的消息无法传递(例如无效标头或未知格式),则WMQ JMS类将尝试重新排队。首先,他们将在队列的BOQNAME和BOQTHRESH属性中查找值。如果存在这些消息,则一旦回退计数超过BOQTHRESH,消息将被放置在BOQNAME中命名的队列中。如果有问题重新排队到此队列,则该消息将被置于死信队列中。如果无法完成此操作,MDB将停止接收消息。
重新排队邮件有几个可能的问题:
如果尚未定义回退队列,请定义一个并将其名称放在输入队列的BOQNAME属性中。接下来,在输入队列的BOQTHRESH属性中放置一个值(通常使用“10”)。确保应用程序使用消息已授权新的回退队列,并在进行这些更改后重新启动应用程序。如果问题是有害消息,您现在应该看到在退出队列中登陆的有害消息,然后主输入队列应该正常耗尽。