Fabriques de connexions JMS
Une fabrique de connexions est un objet qu'un client JMS (un programme JMS qui utilise l'API JMS) utilise pour créer une connexion à un fournisseur JNDI (un fournisseur de messagerie tel qu'IBM® MQ).
IBM MQ Explorer permet de créer des fabriques de connexions et de définir les paramètres de connexion à l'aide desquels la fabrique de connexions établit des connexions.
Les fabriques de connexions, comme les destinations, sont des objets gérés et sont stockées dans un espace de nom JNDI, c'est-à-dire dans un emplacement défini du service d'annuaire. Le contexte initial définit la racine de l'espace de nom JNDI. Dans IBM MQ Explorer, toutes les fabriques de connexions sont stockées dans les dossiers correspondants dans le contexte ou le sous-contexte approprié, comme le montre l'illustration suivante.
La figure représente une fabrique de connexions nommée Connection
Factory 1
stockée dans le dossier des fabriques de connexions du contexte initial File System Initial Context
.
Lorsque vous définissez une fabrique de connexions, vous sélectionnez le fournisseur de messagerie utilisé comme fournisseur JMS (par exemple IBM MQ ou Real Time) ; une fabrique de connexions ne peut établir des connexions qu'à ce fournisseur de messagerie. Pour que le client JMS puisse établir des connexions à un autre fournisseur de messagerie, vous devez créer une fabrique de connexions et indiquer le fournisseur de messagerie approprié. Le transport en temps réel n'était pas disponible dans IBM MQ 8.0. Si vous utilisez IBM MQ 8.0, vous pouvez définir le transport en temps réel, mais il échoue lorsque vous tentez de créer une connexion.
Fabriques de connexions indépendantes des domaines
Deux domaines de messagerie sont disponibles : le domaine point-à-point et le domaine de publication/abonnement. Vous pouvez créer une fabrique de connexions pour établir des connexions réservées à la messagerie point-à-point (à l'aide de l'interface QueueConnectionFactory) ou à la messagerie en mode publication/abonnement (à l'aide de l'interface TopicConnectionFactory). Depuis JNDI, vous pouvez également créer des fabriques de connexions indépendantes des domaines, donc utilisables dans les deux modes de messagerie (à l'aide de l'interface ConnectionFactory). Pour plus d'informations, voir Création d'une fabrique de connexions.
Si l'application JMS ne doit utiliser qu'un seul type de messagerie (point-à-point ou publication/abonnement), vous pouvez sélectionner un domaine de messagerie lorsque vous créez la fabrique de connexions : une fabrique de connexions propre à ce domaine est alors créée.
Cependant, pour utiliser les modes point-à-point et publication/abonnement dans une même transaction, vous pouvez créer une fabrique de connexions indépendante des domaines. Par exemple, une application JMS s'abonne à une rubrique (messagerie en mode publication/abonnement) puis, lorsqu'elle reçoit un message déterminé, elle envoie un autre message à une file d'attente (messagerie en mode point-à-point). La combinaison des deux modes est très difficile dans une même transaction avec des fabriques de connexions spécifiques aux domaines. En effet, vous devez créer une fabrique de connexions distincte par domaine de messagerie, ce qui signifie que le mode point-à-point est réalisé dans une transaction contrôlée par la session QueueSession et le mode publication/abonnement, dans une transaction contrôlée par la session TopicSession. Il est alors difficile de s'assurer que les deux actions, émission et réception, ont été effectuées ou annulées.
Plutôt que de créer une fabrique de connexions par domaine de messagerie (point-à-point et publication/abonnement), vous pouvez créer une fabrique de connexions unique pour les deux modes, indépendante des domaines. Cela signifie que la fabrique de connexions établit une connexion unique ouvrant une session unique. Cette session crée un objet MessageConsumer à partir d'une rubrique et un objet MessageProducer destiné à une file d'attente. Lorsque l'application JMS reçoit le message publié, le message suivant peut être envoyé à la file d'attente dans une transaction de la même session ; les deux opérations peuvent ensuite être validées ou annulées comme une unité d'oeuvre unique.
Pour plus d'informations, voir Utilisation d'IBM MQ classes for JMS dans l'IBM Knowledge Center.