首页 > 解决方案 > 计算 MDB Jms 中的重新交付

问题描述

我正在编写 MDB (EJB3)。我想要的只是当重新交付用尽时,我可以在将消息发送到 DLQ 之前发送电子邮件警报。这怎么能实现??(我没有浏览到 DLQ 的选项)

我搜索了很多在线帖子,请也找到我的补充问题

标签: jmsejb-3.0wildfly-10

解决方案


有一个名为的消息属性JMSXDeliveryCount指示消息已被传递多少次。JMS 2. 0 规范的第 3.5.11 节这样说JMSXDeliveryCount

当客户端接收到消息时,JMS 定义的强制消息属性JMSXDeliveryCount将设置为消息已被传递的次数。第一次收到消息时,它将被设置为 1,因此值 2 或更大意味着消息已被重新传递。

如果JMSRedelivered设置了消息头值,则该 JMSXDeliveryCount属性必须始终为 2 或更大。有关JMSRedelivered消息头的更多信息,请参见第 3.4.7 节“JMSRedelivered”,

JMSXDeliveryCount属性的目的是允许消费应用程序识别特定消息是否正在重复重新传递并采取适当的操作。

JMSXDeliveryCount不保证该财产的价值是完全正确的。JMS 提供者不应保留此值以确保其值在发生故障时不会丢失。


推荐阅读