jms - 计算 MDB Jms 中的重新交付
问题描述
我正在编写 MDB (EJB3)。我想要的只是当重新交付用尽时,我可以在将消息发送到 DLQ 之前发送电子邮件警报。这怎么能实现??(我没有浏览到 DLQ 的选项)
我搜索了很多在线帖子,请也找到我的补充问题
- Wildfly10如何延迟MDB启动?
- 如何从属性文件设置 EJB3 MDB 激活配置(不将它们设置为系统属性)?
解决方案
有一个名为的消息属性JMSXDeliveryCount
指示消息已被传递多少次。JMS 2. 0 规范的第 3.5.11 节这样说JMSXDeliveryCount
:
当客户端接收到消息时,JMS 定义的强制消息属性
JMSXDeliveryCount
将设置为消息已被传递的次数。第一次收到消息时,它将被设置为 1,因此值 2 或更大意味着消息已被重新传递。如果
JMSRedelivered
设置了消息头值,则该JMSXDeliveryCount
属性必须始终为 2 或更大。有关JMSRedelivered
消息头的更多信息,请参见第 3.4.7 节“JMSRedelivered”,该
JMSXDeliveryCount
属性的目的是允许消费应用程序识别特定消息是否正在重复重新传递并采取适当的操作。
JMSXDeliveryCount
不保证该财产的价值是完全正确的。JMS 提供者不应保留此值以确保其值在发生故障时不会丢失。
推荐阅读
- docker-compose - Docker Compose - 无效变量
- php - 访问soap web服务生产环境的问题
- python - 如果用户输入的选项既不是 1 也不是 2,我正在尝试提示程序提供重新输入选择。它不起作用
- git - 壁球合并后,Git quick-stats 给了我错误的统计数据(在 Github 上)
- c - 不明白我是如何收到输出中的数字的?
- javascript - API 提取没有响应
- python - 删除 NaN 后无法将浮点 NaN 转换为整数
- python - Python 3.9.6,Windows,pandas 库,读取 csv 文件时出错,无法获取本地颁发者证书(_ssl.c:1129),有一个好的长期解决方案吗?
- php - 查找之间的所有文本匹配项
- git - 我是其他人设置的私人仓库的合作者,如何在我的个人资料中公开?