【问题标题】:Is there a way of accessing maximum redelivery count from a JMS Message?有没有办法从 JMS 消息中访问最大重新传递计数?
【发布时间】:2021-05-07 22:39:45
【问题描述】:

一个简单的。

JMS 有一个重新传递消息的概念。 可以为 JMS 队列配置最大重新传递计数,在此之后消息将不再重新传递。

javax.jms.Message 接口提供了检查消息是否被重新传递的方法,并获取当前的重新传递计数。

有什么方法可以在 JMS 客户端运行时找出最大重新传递计数?

我想要做的是在last重新传递消息时触发方法调用。我可以只配置那个数字,但我想知道 JMS 是否在某个地方公开了这个值,以便我可以依赖它。

【问题讨论】:

  • 我不想将此作为答案,因为它似乎没有帮助,但没有(至少我不知道)。特定的 JMS 提供者可能会在 Destination 接口的扩展上提供此数据,但我从规范中不知道。
  • +1。这很有帮助。我怀疑没有办法以这种方式获取该信息,但我正在仔细检查。干杯!
  • 如何获得当前的重新投递次数?消息接口只公开一个布尔值,无论它当前是否被重新传递。
  • 对于 Tibco EMS 我这样做 > int deliveryCount = message.getIntProperty("JMSXDeliveryCount");我听说 IBM MQ 使用相同的

标签: java jms


【解决方案1】:

无法从message (javax.jms.Message) 对象获取服务器端最大传递计数配置。

但是,可以获取当前message 被重新发送的次数:

long deliveryCount = message.getLongProperty("JMSXDeliveryCount");

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2020-03-29
    • 1970-01-01
    • 1970-01-01
    • 2013-06-22
    • 2011-03-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多