Messagerie point-à-point entre plusieurs bus
La messagerie point à point utilise des destinations de file d'attente, où chaque destination de file d'attente correspond à une file d'attente de messages.
Une destination de file d'attente d'intégration de service se trouve dans un membre de bus particulier (serveur d'applications ou cluster de serveurs). Quand un utilisateur envoie un message à une destination de file d'attente, le bus d'intégration de services distribue le message à un moteur de messagerie dans ce membre de bus. Le moteur de messagerie distribue ensuite ce message à un destinataire. Si nécessaire, le moteur de messagerie place le message en file d'attente jusqu'à ce que le destinataire puisse le recevoir.
Les applications peuvent envoyer des messages à une destination de file d'attente dans un bus distant, dès lors que la connexion entre les bus est configurée. Vous pouvez configurer un bus pour la connexion à d'autres réseaux de messagerie avec lesquels échanger des messages. Pour ce faire, vous devez configurer une connexion de bus externe. Une connexion de bus externe encapsule des informations liées au réseau de messagerie éloigné telles que le type du bus externe et le fait que les applications de messagerie soient autorisées ou non à envoyer des messages au bus externe. Le bus de destination est communiqué au bus local via une connexion de bus externe. Si le bus directement connecté au bus local ne contient pas la destination définie, un plus grand nombre de liaisons de bus d'intégration de services sont utilisées pour envoyer les messages au bus suivant dans l'itinéraire vers le bus de destination. Lorsque le message arrive au bus de destination, ce dernier tente de le distribuer à la destination prévue.
Pour envoyer des messages à une destination définie dans un bus externe, une application définit le nom du bus (à savoir le bus externe) et le nom de la destination dans l'objet de destination JMS (file d'attente ou sujet). Il est inutile de configurer des objets destination dans le bus local. L'intégration de services utilise la définition du bus externe configuré dans le bus local, à savoir la connexion de bus externe. Cette définition contient les valeurs par défaut des attributs de destination, tels que la qualité de service par défaut. Ces valeurs par défaut s'appliquent à toutes les destinations dans le bus externe.
Vous pouvez configurer une destination de file d'attente comme destination externe ou destination d'alias, comme indiqué dans les informations sur les destinations de bus.
Lorsqu'une application envoie des messages à une destination et qu'une destination ou une destination d'alias ne sont pas définis, les valeurs par défaut de destination sont issues des valeurs par défaut de destination définies pour la connexion de bus externe.
- L'intégration de services envoie le message au bus 2 en utilisant la définition dans le bus 2 du bus externe 2.
- Le bus 2 envoie le message à targetQueue en utilisant la définition dans le bus 2 de sa file d'attente locale targetQueue.
Dans cet exemple, l'intégration de services dans le bus 1 utilise les attributs de sa définition du bus externe, le bus 2, comme valeurs par défaut pour sa destination targetQueue dans le bus externe. L'intégration de services ne peut pas utiliser les informations de configuration restreintes à un bus externe. Supposons que l'intégration de services dans le bu 1 ne connaisse pas la définition du bus 2 de targetQueue.
Dans l'illustration suivante, une application JMS connectée au bus 1 crée un émetteur pour une file d'attente dans le bus 2. L'application utilise JNDI pour obtenir un objet de destination JMS qui identifie la file d'attente du bus d'intégration de services dans le bus 2. Une application peut obtenir une destination JMS en utilisant d'autres méthodes, par exemple, la propriété JMSReplyTo d'un message JMS.

- L'application JMS utilise la recherche JNDI pour obtenir la destination JMS.
- L'application JMS envoie le message à la destination JMS ; il s'agit d'un flux de messages logique.
- Le bus local, le bus 1, transfère le message de l'application émettrice vers le bus externe, le bus 2, qui contient la destination cible. Le bus 1 applique les propriétés par défaut et les rôles de destination forment la connexion de bus externe.
- Le bus externe place le message dans la destination cible.
Les informations d'existence d'une destination sont stockées uniquement par le bus local qui héberge la destination. Pour qu'une application puisse envoyer des messages à une destination dans un bus externe, la destination doit exister. Le bus local ne peut pas vérifier qu'elle existe. Si un message arrive via la liaison du bus d'intégration de services pour une destination qui n'existe pas dans le bus externe, le message est envoyé en utilisant la configuration de gestion des exceptions de la liaison de bus d'intégration de services réceptrice.