Interaction avec IBM MQ : Concepts clé IBM MQ
Si vous n'êtes pas familiarisés avec les concepts IBM MQ de base, lisez les informations sur les objets dans IBM MQ qui sont importants pour l'interaction WebSphere Application Server.
Files d'attente et sujets
Une file d'attente est une structure de données permettant de stocker des messages. Les programmes d'application peuvent utiliser JMS ou les appels d'API IBM MQ pour placer des messages dans les files d'attente IBM MQ. D'autres applications peuvent extraire les messages des files d'attente.
Un sujet est une information publiée dans un message de publication/abonnement. Plutôt que de placer un message dans une file d'attente spécifique, les programmes d'application peuvent publier un message sur un sujet. D'autres applications obtiennent les messages en s'abonnant au sujet pour recevoir tous les messages publiés.
Lorsqu'une application place un message dans une file d'attente, un seul exemplaire du message existe. Même si plusieurs applications peuvent extraire des messages de la file d'attente, un seul consommateur peut recevoir chaque message. Toutefois, lorsqu'une application publie un message sur un sujet, le nombre d'abonnés pouvant recevoir un exemplaire du message est illimité.
Gestionnaires de files d'attente et groupes de partage de files d'attente
Chaque file d'attente IBM MQ appartient à un gestionnaire de files d'attente. Le gestionnaire de files d'attente est chargé de mettre à jour ses files d'attente et de placer tous les messages qu'il reçoit sur les files appropriées. Les programmes d'application se connectent à un gestionnaire de files d'attente lorsqu'ils doivent placer des messages dans les files d'attente. Les gestionnaires de files d'attente peuvent également placer des messages dans des files d'attente dans le cadre de leur fonctionnement normal.
Depuis la version 7 de IBM MQ, chaque sujet de IBM MQ appartient également à un gestionnaire de files d'attente. Le gestionnaire de files d'attente reçoit des messages des diffuseurs de publications et des abonnements des abonnés. Le gestionnaire de files d'attente est chargé d'acheminer les messages publiés vers les abonnés qui ont enregistré un intérêt pour le sujet des messages. Dans les versions précédentes de IBM MQ, la messagerie de publication/abonnement est gérée par un courtier de publication/abonnement et non par des gestionnaires de files d'attente.
Dans IBM MQ for z/OS, vous pouvez configurer des files d'attente partagées auxquelles peuvent accéder différents gestionnaires de files d'attente dans un sysplex. Les messages placés dans des files d'attente partagées sont stockés dans des structures de liste, dans une unité de couplage zSeries et les données des messages volumineux sont stockées dans une table DB2 partagée.
Les gestionnaires de files d'attente pouvant accéder au même ensemble de files d'attente partagées forment un groupe appelé groupe de partage de files d'attente. Chaque membre du groupe de partage de files d'attente se connecte à un système DB2 pour accéder à des définitions partagées pour des objets IBM MQ, y compris les files d'attente et les canaux. Tout gestionnaire de files d'attente du groupe peut extraire les messages conservés dans une file d'attente partagée. Une application souhaitant accéder à l'une des files d'attente partagées peut donc se connecter à n'importe quel gestionnaire de files d'attente du groupe de partage de files d'attente ; l'application ne dépend donc pas de la disponibilité d'un gestionnaire de files d'attente spécifique.
Files d'attente locales, files d'attente éloignées et clusters
Dans un réseau IBM MQ, l'intercommunication est obtenue en envoyant des messages d'un gestionnaire de files d'attente ou (pour IBM MQ for z/OS) d'un groupe de partage de file d'attente à un autre.
Les programmes d'application IBM MQ peuvent placer des messages dans une file d'attente locale, c'est à dire une file d'attente du gestionnaire de files d'attente auquel l'application est connectée. Un gestionnaire de files d'attente a une définition pour chaque file d'attente qu'il détient. Un gestionnaire de files d'attente peut aussi disposer de définitions pour les files d'attente détenues par les autres gestionnaires de files d'attente. Dans la perspective du gestionnaire de files d'attente local auquel est connectée l'application, les autres files d'attente sont éloignées et les gestionnaires de files d'attente auxquels elles appartiennent sont également éloignés.
De même qu'ils placent des messages dans une file d'attente locale, les programmes d'application IBM MQ connectés à un gestionnaire de files d'attente local peuvent placer des messages destinés aux files d'attente éloignée. IBM MQ doit ensuite transmettre les messages aux gestionnaires de files d'attente éloignés qui possèdent les files d'attente éloignées. Si les messages sont destinés à une file d'attente IBM MQ d'un gestionnaire de files d'attente éloigné, le gestionnaire de files d'attente les conserve dans une file d'attente de transmission jusqu'à ce qu'il puisse les envoyer au gestionnaire de files d'attente éloigné. Une file de transmission est un type spécial de file d'attente locale dans laquelle les messages sont stockés jusqu'à ce qu'ils puissent être envoyés et stockés dans le gestionnaire de files d'attente distant.
Les gestionnaires de files d'attente IBM MQ peuvent être connectés entre eux pour former un cluster, à l'aide de n'importe quel protocole de communication disponible sur votre plateforme IBM MQ. Lorsque vous regroupez des gestionnaires de files d'attente en cluster, les files d'attente restent hébergées par les gestionnaires de files d'attente (elles ne sont donc pas partagées). Toutefois, en se connectant au cluster, les gestionnaires de files d'attente peuvent envoyer un message à tout autre gestionnaire de files d'attente du cluster et rendre accessible tout ou partie des files d'attente qu'ils hébergent pour chaque gestionnaire de files d'attente du cluster en tant que files d'attente du cluster. Il n'est pas nécessaire de créer des définitions explicites sur chaque gestionnaire de files d'attente pour chaque file d'attente éloignée et pour la connexion à chaque gestionnaire de files d'attente éloigné. Chaque gestionnaire de files d'attente du cluster utilise également une file d'attente de transmission du cluster unique pour conserver les messages pour l'un des gestionnaires de files d'attente ; vous n'avez donc pas à configurer de file d'attente de transmission pour chaque gestionnaire de files d'attente éloigné.
Depuis la version 7 de IBM MQ, vous pouvez également connecter entre eux les gestionnaires de files d'attente IBM MQ qui possèdent des sujets pour la messagerie de publication/abonnement. Vous pouvez regrouper les gestionnaires de files d'attente qui possèdent des sujets en un cluster de publication/abonnement avec des liaisons entre chaque membre ou en une hiérarchie de publication/abonnement avec des relations parent/enfant entre les gestionnaires de files d'attente connectés. Les publications et les abonnements à des sujets peuvent être partagés entre tous les gestionnaires de files d'attente dans le cluster ou la hiérarchie.
Canaux de messages
Les messages IBM MQ, qu'ils soient placés sur des files d'attente ou publiés dans des sujets, sont transmis entre les gestionnaires de files d'attente via des canaux de messages. Un canal de message est une liaison de communication unidirectionnelle entre deux gestionnaires de files d'attente. Il peut transporter les messages destinés à n'importe quel nombre de files d'attente ou de sujets hébergés par le gestionnaire de files d'attente distantes ou pour n'importe quel nombre de gestionnaires de files d'attente cible.
- Canal émetteur-récepteur
- Canal demandeur-serveur
- Canal demandeur-émetteur
- Canal serveur-récepteur
- Canaux émetteurs de cluster
- Canaux récepteurs de cluster
Par exemple, pour définir le type de canal de messages appelé Canal émetteur-récepteur, définissez un canal émetteur à l'extrémité d'envoi, qui peut être le gestionnaire de files d'attente local. Ensuite, utilisez le même nom pour définir un canal récepteur à l'extrémité réceptrice, qui peut être le gestionnaire de files d'attente éloigné. Un canal de messages est unidirectionnel. Par conséquent, pour que les messages soient envoyées dans les deux directions, définissez un second canal dans le sens opposé entre les gestionnaires de files d'attente.
Pour les gestionnaires de files d'attente dans un cluster, il n'est pas définir des canaux de messages entre chaque paire de gestionnaire de files d'attente. Vous devez définir deux canaux de messages pour connecter chaque gestionnaire de files d'attente dans le cluster : un canal récepteur de cluster pour les messages entrants et un canal émetteur de cluster auprès duquel le gestionnaire de files d'attente se présente et collecte des informations sur le cluster. Le gestionnaire de files d'attente peut alors envoyer un message à n'importe quel autre gestionnaire de files d'attente du cluster.
Ne confondez pas canaux de messages et canaux MQI. MQI est l''interface de file d'attente de message (Message Queue Interface) dans IBM MQ, que les applications utilisent pour interagir avec les gestionnaires de files d'attente. Un canal MQI est un type de connexion utilisé par une application client IBM MQ pour se connecter à un gestionnaire de files d'attente qui s'exécute sur un autre système et pour envoyer des appels MQI au gestionnaire de files d'attente.