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