gpt4 book ai didi

java - 获取 MQJE001 后出现重复消息 : An MQException occurred: Completion Code '2' , 原因 '2018'

转载 作者:行者123 更新时间:2023-12-01 12:32:01 25 4
gpt4 key购买 nike

我有以下场景:

我正在将消息放入 MQ 队列中,而其他一些应用程序正在同一队列中进行轮询。我遇到过这样的场景:

我的应用程序尝试将消息放入队列,但遇到MQJE001:发生 MQException:完成代码“2”,原因“2018”。如果我的应用程序无法将消息放入队列,我有一个重试逻辑。所以我的应用程序尝试将消息放入队列中。这次它能够再次将消息放入队列中。现在出现的问题是另一个正在轮询队列中消息的应用程序收到了两条消息。

我使用的是 MQ 服务器版本 7.0.1.8 和 MQ 客户端版本 7.0.1.5。

我的疑问如下:

  1. 为什么消息在队列中放入两次,即使我第一次遇到 MQJE001:发生 MQException:完成代码“2”,原因“2018”

    <
  2. MQ 中是否有自动提交标志?我在哪里可以得到这方面的更多详细信息?我已经用谷歌搜索过,但没有得到正确的信息。我检查了下面的链接,但没有与 MQ 自动提交标志相关的内容。 Committing and backing out units of work

  3. 服务器版本和客户端版本的差异很重要吗?

  4. 来自APAR IV22989 ,我看到 IBM 针对 MQJE001 进行了修复:发生了 MQException:完成代码“2”,原因“2018”。这只适用于V7.1和V7.5吗?

最佳答案

首先我建议至少更新您正在使用的客户端版本; 7.0.1.12 是最新的。应用于 QM 的维护也会很有用。级别的差异可能是问题所在,但我建议获得最近的级别将是一个很好的做法。设计是这样的,差异应该不重要 - 特别是如果使用客户端模式(TCP/IP),这提供了一个附加的

我假设这是 Java 的类,而不是您正在使用的 JMS API?在这种情况下,提交将由您选择的同步点选项控制。

JMS具有自动确认消息的概念;听起来这里的消息被放在同步点(事务)之外,因此出现在队列中。出现问题,消息又被放了一遍。一般来说,这对于应用程序响应错误来说是一个很好的做法,但是如果不放入事务重复消息,就会存在风险。

关于java - 获取 MQJE001 后出现重复消息 : An MQException occurred: Completion Code '2' , 原因 '2018',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25861129/

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