我有一个消息驱动的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方式来确定它是否是最后一次重发(意味着我根本不需要关心这个数字)?
答案 0 :(得分:3)
使用hornetq,您必须在地址设置中指定它。所以你不会在bean上指定它。你将在队列级别指定它。
这里的文档可能会给你一个更好的想法:
(我指的是2.3.0 doc但是自HornetQ的第一个版本以来这是相同的)