【问题标题】:HornetQ JMS: Configure max-delivery-attempts in Java codeHornetQ JMS:在 Java 代码中配置 max-delivery-attempts
【发布时间】:2013-05-24 21:10:58
【问题描述】:

我有一个消息驱动的 EJB,它从 HornetQ (2.1.13) JMS 队列接收消息。有问题的应用程序在 JBoss 7.1 上运行。我知道我可以在服务器上使用 xml 进行配置,如下所示:

<max-delivery-attempts>3</max-delivery-attempts>

我之所以考虑不使用这种方式是因为如果这是最后一次尝试(即尝试第 3 次),我们会执行一些逻辑,所以我不希望将这种配置放在几个地方。

有问题的代码是从 JBoss 4 升级的,其中最大传递尝试次数可以配置如下。但是,对于 JBoss 4(不是 HornetQ)中使用的 JMS 实现,这是非常具体的配置。

@MessageDriven(name = "SomeMessageBean", activationConfig = {
    @ActivationConfigProperty(propertyName = "dLQMaxResent", propertyValue = "3")
})

HornetQ有什么办法可以直接在Message Driven Bean的Java代码中设置属性&lt;max-delivery-attempts&gt;(最好带注解)?或者甚至有一个 JMS 方法来确定它是否是最后一次重新发送(这意味着我根本不需要关心这个数字)?

【问题讨论】:

    标签: java jboss jms jboss7.x hornetq


    【解决方案1】:

    使用 hornetq,您必须在地址设置中指定它。所以你不会在bean上指定它。您将在队列级别指定它。

    这里的这个文档可能会给你一个更好的主意:

    http://docs.jboss.org/hornetq/2.3.0.Final/docs/user-manual/html/queue-attributes.html#queue-attributes.address-settings

    (我指的是 2.3.0 文档,但这与 HornetQ 的第一个版本相同)

    【讨论】:

    • 您对此100% 确定吗?这一定意味着JBoss 4 和HornetQ 中的JMS 实现有根本区别?实际上,我对使用 JMS 还很陌生,所以我真的不知道。
    • 我是 :) 我是 HornetQ 的项目负责人。我们不想强制在每个 MDB 上设置这些设置。这是代理的属性,而不是资源适配器。看看我发给你的链接。这就是这样做的方法.. HornetQ 是消息传递提供程序的新实现,比 Jboss MQ 更好
    • 我认为你是一个值得信赖的消息来源。 :) 在发布问题之前,我实际上已经阅读了您链接到的部分。我想这就是我问这个问题的原因,因为我只在队列级别找到了解决方法。无论如何,非常感谢。
    猜你喜欢
    • 2021-07-15
    • 2019-09-21
    • 2021-10-30
    • 1970-01-01
    • 1970-01-01
    • 2014-06-09
    • 2012-10-29
    • 2012-02-08
    • 2017-02-18
    相关资源
    最近更新 更多