java - 当 JMSXDeliveryCount 增加时

标签 java jms ibm-mq

WebSphere MQ 中 JMSXDeliveryCount 增加的条件是什么。我需要它可能发生的所有场景。

最佳答案

每次将消息重新传送给消费者时,JMSXDeliveryCount 都会递增。可以重新传递消息:

1) 使用 Client Acknowledge 模式的消费者较早收到消息时没有对该消息调用 acknowledge()。

2) 消费者在事务中收到消息,没有调用提交或调用回滚。

编辑:

如果 JMS 客户端由于某些错误的 JMS header 而无法处理该消息,则此类消息(称为毒消息)将不会传递给应用程序,并且 JMS 客户端将在内部回滚该消息。在这种情况下,JMSXDeliveryCount 也会增加。

在 IBM MQ 中,您是否为从中检索消息的队列设置了回退队列和回退阈值属性?一旦达到回退阈值,JMS 客户端会将此类错误消息放入回退队列。这是为了避免 JMS 客户端一次又一次地检索相同的消息,从而阻止将其他好的消息传递给应用程序。

关于java - 当 JMSXDeliveryCount 增加时,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28020111/

相关文章:

java - 不使用 Oracle jar 的 WebLogic 客户端

java - new MQConnectionFactory() 在 JBoss 中抛出 NullPointerException

c - 停止等待 MQGET 正常退出

java - Collectors.summingInt() 与 mapToInt().sum()

java - java中的getType()和getClass()有什么区别?

java - 使用递归在二叉树中查找包含给定字符串的节点

java - 使用java对请求进行排队和批处理

java - 用锁保护非 volatile 字段的初始化?

java - Mule中JMS ActiveMQ的过滤器是如何实现的?

java - Quarkus IBM MQ 集成