Modele de lettre deces

Nous prenons également en charge par onException pour définir un Onrelivrer. Cela signifie que vous pouvez faire spécial sur la relivraison pour différentes exceptions, par opposition à onRedelivery défini sur Dead letter Channel peut être considéré comme une portée globale. Vous avez souvent besoin de savoir ce qui s`est mal passé qui a provoqué le canal de lettre morte à utiliser et il n`offre pas la journalisation à cet effet. Ainsi, le point de terminaison du canal de la lettre morte peut être défini sur un point de terminaison de notre propre (tel que direct: deadLetterChannel). Nous écrivons un itinéraire pour accepter cet échange et consigner l`exception, puis transférer à l`endroit où nous voulons l`échec de l`échange déplacé vers (qui peut être une file d`attente DLQ par exemple). Voir aussi http://stackoverflow.com/questions/13711462/logging-camel-exceptions-and-sending-to-the-dead-letter-channel il n`est pas nécessaire que le prochain délai soit plus élevé que le précédent. Vous pouvez utiliser n`importe quelle valeur de retard que vous aimez. Par exemple avec delayPattern = 1:5000; 3:1000 nous commençons avec le délai de 5 sec et ensuite réduisons cela à 1 seconde. La manière spécifique d`un canal de lettre morte fonctionne dépend de la mise en œuvre du système de messagerie spécifique, si elle fournit un du tout.

Le canal peut être appelé «file d`attente de messages morts» [Monson-Haefel, p. 125] ou «file d`attente de lettres mortes». [MQSeries], [Dickman, pp. 28-29] en règle générale, chaque machine sur laquelle le système de messagerie est installé a son propre canal de lettre morte locale, de sorte que quelle que soit la machine sur laquelle un message meurt, il peut être déplacé d`une file d`attente locale à une autre sans aucune incertitude de mise en réseau. Cela enregistre également la machine sur laquelle le message est décédé. Lorsque le système de messagerie déplace le message, il peut également enregistrer le canal d`origine que le message était censé être livré sur. Lorsqu`un système de messagerie détermine qu`il ne peut pas ou ne doit pas remettre un message, il peut choisir de déplacer le message vers un canal de lettres mortes. Vous pouvez démarrer un groupe avec la limite 1 pour par exemple, avoir un délai de départ: delayPattern = 1:1000; 5:5000 lorsque le canal de lettre morte fait relivrer son possible de configurer un processeur qui est exécuté juste avant chaque tentative de remise.

Cela peut être utilisé pour les situations où vous devez modifier le message avant sa remise. Voir ci-dessous pour l`échantillon. L`exemple suivant montre comment configurer la configuration de canal de lettre morte à l`aide de la DSL {Snippet: ID = E3 | lang = Java | URL = Camel/Trunk/Camel-Core/SRC/test/java/org/Apache/Camel/Builder/ErrorHandlerTest. Java} vous pouvez également configurer le RedeliveryPolicy comme cet exemple montre {Snippet: ID = E4 | lang = Java | URL = Camel/Trunk/Camel-Core/SRC/test/java/org/Apache/Camel/Builder/ErrorHandlerTest. Java} le DeadLetterChannel est également configuré par défaut pour ne pas être verbeux dans les logs, donc quand un message est géré et déplacé vers le point de terminaison de lettre morte, alors il n`y a rien enregistré. Si vous voulez un certain niveau de journalisation, vous pouvez utiliser les différentes options sur la stratégie de relivraison/canal de lettre morte pour configurer ceci.