Red Hat Training

A Red Hat training course is available for Red Hat JBoss Enterprise Application Platform

18.7. Diverts

Les diverts (redirections) sont des objets configurés dans HornetQ qui aident à redirectionner des messages d'une adresse (vers laquelle le message est dirigé) vers d'autres adresses. Les redirections peuvent être configurées dans des fichiers de configuration de serveur (standalone.xml et domain.xml).
Les diverts peuvent être classifiés en types suivants :
  • Exclusive Divert : un message est redirigé vers une nouvelle adresse uniquement et n'est pas dutout renvoyé vers une ancienne adresse
  • Non-exclusive Divert : un message continue d'aller vers une ancienne adresse, et une copie de ce message est également envoyée vers la nouvelle adresse. Les redirections non exclusives (non-exclusive diverts) peuvent être utilisées pour diviser les flux de messages.
Les diverts peuvent être configurés pour appliquer un Transformer et un filtre optionnel de message. Un filtre optionnel de message ne redirige que des messages qui correspondent au filtre spécifié. Un transforformateur est utilisé pour transformer les messages sous une autre forme. Quand un transformateur est spécifié, tous les messages redirigés sont transformés par le Transformer.
Un divert ne redirige un message vers une adresse que dans un même serveur. Si vous avez besoin de rediriger un message vers un serveur différent, vous pouvez suivre le modèle décrit ci-dessous :
  • Rediriger les messages vers un store local et une file d'attente de redirection. Définir un pont qui consomme à partir de cette file d'attente et qui redirige les messages vers une adresse qui se trouve sur un serveur différent.
Vous pouvez combiner des diverts par des ponts pour créer divers routages.

18.7.1. Exclusive Divert

Un exclusive divert (redirection exclusive) redirige tous les messages d'une ancienne adresse vers une nouvelle adresse. Les messages correspondants ne sont pas redirigés vers l'ancienne adresse. Vous pouvez activer un exclusive divert en configurant l'attribut exclusive à true dans les fichiers de configuration standalone.xml et domain.xml du serveur.
L'exemple suivant vous présente un exclusive divert configuré dans les fichiers de configuration du serveur :
<divert name="prices-divert">
   <address>jms.topic.priceUpdates</address>
   <forwarding-address>jms.queue.priceForwarding</forwarding-address>
   <filter string="office='New York'"/>
   <transformer-class-name>
      org.hornetq.jms.example.AddForwardingTimeTransformer
   </transformer-class-name>
   <exclusive>true</exclusive>
</divert>
La liste suivante décrit les attributs utilisés dans l'exemple ci-dessus :
  • address: les messages envoyés à cette adresse sont redirigés vers une autre adresse
  • forwarding-address: les messages sont redirigés vers cette adresse à partir d'une ancienne adresse
  • filter-string: les messages qui correspondent à la valeur filter-string sont redirigés. Tous les autres messages sont redirigés vers l'adresse normale
  • transformer-class-name: si vous spécifiez ce paramètre, une transformation aura lieu pour chaque message correspondant. Cela vous permettra de modifier le contenu ou la propriété d'un message avant qu'il soit redirigé.
  • exclusive : utilisé pour activer ou désactiver un exclusive divert