2

我有一个消息驱动的 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 方法来确定它是否是最后一次重新发送(这意味着我根本不需要关心这个数字)?

4

1 回答 1

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 文档,但这与 HornetQ 的第一个版本相同)

于 2013-05-29T16:10:52.533 回答