Comment définir la ActiveMQ redeliveryPolicy sur une file d'attente?
Comment puis-je régler l'redeliveryPolicy dans ActiveMQ sur une File d'attente?
1) Dans la doc, voir: activeMQ de Relivraison, l'expliquez que vous devriez le mettre sur le ConnectionFactory ou de Connexion. Mais je veux utiliser une valeur différente pour différentes File d'attente.
2) en dehors de cela, je ne semble pas le faire fonctionner. Sur l'usine de raccordement au Printemps (je suis en utilisant activemq 5.4.2. avec le Printemps 3.0) comme cela ne semble pas avoir d'effet:
<amq:connectionFactory id="amqConnectionFactory" brokerURL="${jms.factory.url}" >
<amq:properties>
<amq:redeliveryPolicy maximumRedeliveries="6" initialRedeliveryDelay="15000" useExponentialBackOff="true" backOffMultiplier="5"/>
</amq:properties>
</amq:connectionFactory>
J'ai aussi essayé de mettre la propriété sur la définition de la File d'attente, mais qui semblent aussi être ignorés comme la nouvelle livraison se produit plus tôt que les valeurs définies:
<amq:queue id="jmsQueueDeclarationSnd" physicalName="${jms.queue.declaration.snd}" >
<amq:properties>
<amq:redeliveryPolicy maximumRedeliveries="6" initialRedeliveryDelay="15000" useExponentialBackOff="true" backOffMultiplier="5"/>
</amq:properties>
</amq:queue>
Grâce
OriginalL'auteur edbras | 2011-03-16
Vous devez vous connecter pour publier un commentaire.
Moi aussi j'ai été en utilisant la méthode présentée par Ivan ci-dessus pour amq:connectionFactory
Tandis que la mise à niveau vers ActiveMQ 5.7.0 j'ai remarqué que cela ne fonctionne plus (depuis la mise en œuvre de https://issues.apache.org/jira/browse/AMQ-3224). De toute façon après la lecture d'un meilleur post sur le ActiveMQ forums que j'utilise actuellement :-
Noter que pour tous les messages qui ne parviennent pas à être en rupture de stock au bout de 6 tentatives, ActiveMQ, permettra de créer un DLQ.emailQueue " ou DLQ.smsQueue et mettre en file d'attente les messages de cette file d'attente (file d'attente de l'original de la file d'attente).
bien sûr, il y a une nouvelle file d'attente 'DLQ.emailQueue' créé la première fois que max tentatives est atteint et le message se déplace de "emailQueue" pour que. Je les vois à destination = 'file://DLQ.emailQueue', rupture de stock = 'false' dans ce cas, car elle n'est pas.
OriginalL'auteur Wayne Earnshaw
J'ai eu de travail par la mise en place sur l'usine comme fait ci-dessus, mais seulement lors de la création de l'usine de raccordement comme un Ressort de haricots et non pas à travers XBean comme indiqué ci-dessus. C'est parce que le xsd ne vous permettra pas de régler le redeliveryPolicy comme un objet, mais comme une simple Chaîne de caractères.
Après le réglage de la mémoire cache de niveau de Consommation au Printemps de DefaultMessageListenerContainer, tout a fonctionné.
Sur la file d'attente , il semble que vous simple peut définir une politique de livraison... Étrange, car j'aimerais avoir des paramètres différents pour les différentes file d'attente du/des sujets. Imaginez que vous avez un lent et le plus rapide de la file d'attente, ou d'un système externe que vous vous connectez à qui a besoin de plus de temps pour récupérer..
Peut-être que cette fonctionnalité est encore en cours de réalisation
Comme de ActiveMQ v5.7.0 vous pouvez maintenant configurer un RedeliveryPolicy par destination.
OriginalL'auteur edbras
Vous pouvez définir la
redeliveryPolicy
dans leamq
espace de noms comme ceci:OriginalL'auteur Ivan Choo
Je ne pouvais pas obtenir ActiveMQ (5.7.0) de reconnaître ma nouvelle livraison de la politique lorsque je défini à l'aide de
<amq:properties>
sur le ConnectionFactory ou de la File d'attente (il l'a gardé à l'aide de la valeur par défaut de relivraison de la politique). Ce qui a fonctionné pour moi, c'est ceci:Printemps config comme suit:
OriginalL'auteur Evan Haas