HornetQ JMS:配置Java代码中的最大传递尝试次数

时间:2013-05-29 14:33:37

标签: java jboss jms jboss7.x hornetq

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

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

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

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

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

HornetQ中是否有任何方法可以直接在Message Driven Bean的Java代码(最好是带注释)中设置属性<max-delivery-attempts>?或者是否有一种JMS方式来确定它是否是最后一次重发(意味着我根本不需要关心这个数字)?

1 个答案:

答案 0 :(得分:3)

使用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 doc但是自HornetQ的第一个版本以来这是相同的)