如何解决Weblogic MDB实例变为零,并且队列中的消息未接收
| 我有一个通过本地绑定从MQ队列读取的MDB。有时,我们注意到来自MQ队列的消息未被拾取,队列深度增加到50000,实例数变为零。执行线程总数为25。一台物理机中有8个受管服务器。解决方法
听起来像是毒消息问题。如果无法传递队列中的消息(例如无效的标头或未知格式),则WMQ JMS类将尝试重新排队。首先,他们将在队列的BOQNAME和BOQTHRESH属性中寻找一个值。如果存在这些消息,则一旦回退计数超过BOQTHRESH,消息就会被放置在以BOQNAME命名的队列上。如果在重新排队到该队列时遇到问题,则该消息将被放置在“死信队列”中。如果无法完成,则MDB停止接收消息。
重新排队消息可能存在几个问题:
BOQNAME队列或DLQ不存在
重新排队目标队列存在,但是消耗ID的消息无权使用它
重新排队目标队列已满
BOQNAME或BOQTHRESH中没有值
如果尚未定义退出队列,请定义一个并将其名称放置在输入队列的BOQNAME属性中。接下来,在输入队列的BOQTHRESH属性中放置一个值(通常使用\“ 10 \”)。确保使用应用程序的消息被授权给新的退出队列,并在进行这些更改后重新启动应用程序。如果问题是有毒消息,则现在您应该会看到有毒消息降落在回退队列中,然后主输入队列应正常排出。
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。