HornetQ JMS: Configurer max-delivery-attempts en code Java


J'ai un EJB piloté par message qui reçoit des messages d'une file d'attente JMS HornetQ (2.1.13). L'application en question fonctionne sur JBoss 7.1. Je sais que je peux configurer cela sur le serveur, en utilisant XML, comme ceci:

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

La raison pour laquelle j'envisage de ne pas utiliser de cette façon est parce que nous effectuons une logique si c'est le dernier essai (c'est-à-dire essayer le numéro 3), donc je préférerais ne pas mettre cette configuration à plusieurs endroits.

Le code en question est mis à niveau à partir de JBoss 4, où le nombre maximum de tentatives de livraison peut être configuré comme ci-dessous. Cependant, il s'agit d'une configuration très spécifique pour l'implémentation JMS utilisée dans JBoss 4 (qui n'est pas HornetQ).

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

Existe-t-il un moyen dans HornetQ de définir l'attribut <max-delivery-attempts> directement dans le code Java (de préférence avec des annotations) du Bean piloté par Message? Ou existe-t-il même un moyen JMS de savoir s'il s'agit de la dernière ré-envoi (ce qui signifie que je n'ai pas du tout à me soucier du nombre)?

Author: Magnilex, 2013-05-29

1 answers

Avec hornetq, vous devez le spécifier dans les paramètres d'adresse. donc, vous ne le spécifiez pas sur le haricot. vous le spécifiez au niveau de la file d'attente.

Ce document ici vous donnera probablement une meilleure idée:

Http://docs.jboss.org/hornetq/2.3.0.Final/docs/user-manual/html/queue-attributes.html#queue-attributes.address-settings

(je pointe un document 2.3.0 mais c'est la même chose depuis les premières versions de HornetQ)

 3
Author: Clebert Suconic, 2013-05-29 16:10:52