gpt4 book ai didi

java - jms 消息不移动 websphere 中的队列

转载 作者:塔克拉玛干 更新时间:2023-11-02 07:58:20 25 4
gpt4 key购买 nike

我有一个消息驱动的 bean,它在某些情况下会抛出异常。当它抛出异常时,消息不会被处理并放回队列中。根据我对 MQ 和 WAS(Websphere 应用程序服务器)的理解,消息应该在 x 次尝试后标记为错误并从队列中删除。这并没有发生,消息仍保留在标记为坏的队列中。

我没有正确设置 MQ 和/或 WAS 中的哪一部分配置?

(MDB 抛出异常的问题不是这里的重点)

谢谢。

最佳答案

队列中有属性 BOQNAME 和 BOQTHRESH。这些必须设置为要将消息重新排队的回退队列的名称以及重新排队消息之前的回退次数阈值。

此外,QMgr 必须能够将消息放入指定队列。问题可能包括队列名称拼写错误、撤销队列已满或运行 MDB 的帐户未被授权将消息放入撤销队列。

如果 MDB 检测到有毒消息循环并且无处重新排队消息,它会停止处理。您仍然会看到该线程,但您会在队列中丢失一个或多个打开的输入句柄。在这种情况下,必须重新启动应用程序才能将其恢复。

避免使用系统的 DLQ 作为回退目标。 DLQ 是 QMgr 将放置来自另一个 QMgr 的无法解析为目标队列的消息的地方。这些将附加死信 header ,而重新排队的 MDB 消息则不会。这可能会导致您观看 DLQ 的任何自动化出现问题。因此,建议每个应用程序都有一个异常队列,不是 DLQ。

BOQTHRESH 应该大于 1 或 2,因为关闭 QMgr 或 channel 等正常操作可能会导致退出。我通常将 BOQTHRESH 设置为 5 或 10,但看到有人将其设置得更高。取决于您对重试的容忍度,以及退出是否通常是由临时情况(例如填满日志范围)引起的。

关于java - jms 消息不移动 websphere 中的队列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2951033/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com