2

HornetQ (2.1.13) JMS キューからメッセージを受信するメッセージ駆動型の EJB があります。問題のアプリケーションは 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>メッセージ駆動型 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 に答える