我有一个队列 Q1,它的回退队列为 QB,回退阈值为 3。我正在研究处理有害消息的各种可能性,所以每当我从队列中读取消息并继续轮询队列时,我都会让我的应用程序抛出异常。Q1 的深度为 15,QB 为 5,DLQ 为 5。对于第一个场景,我在 Q1 中输入了 7 条消息并启动了应用程序。正如预期的那样,当回退计数为 3 时,每条消息都回滚到队列并移动到回退队列。在第六条消息期间,由于 QB 已满,消息移动到 DLQ,第七条消息也是如此。迷人地工作。
对于第二种情况,我需要知道当回退队列和 DLQ 都已满时会发生什么,我输入了 12 条消息并启动了应用程序,对于前 10 条消息,一切都按预期工作,5 条在回退中,5 条在 DLQ 中。接下来,它会抛出 DLQ is full 这很明显。
但是我在 MQ 资源管理器中可以观察到,这 12 条消息只是在 Q1、QB 和 DLQ 之间无限循环,当我自己停止应用程序时,所有消息都像我启动应用程序之前一样在 Q1 中结束。
完全困惑,谷歌搜索了很多,但没有找到类似的东西。
谁能指出我做错了什么或这个难题中缺少什么。
提前致谢。