JMS Fabrique de connexions

Une fabrique de connexions est un objet qu'un client JMS (programme JMS qui utilise l'API JMS) utilise pour créer une connexion avec un fournisseur JNDI (un fournisseur de messagerie tel que IBM® MQ).

Vous pouvez utiliser IBM MQ Explorer pour créer des fabriques de connexions et pour définir les paramètres de connexion que la fabrique de connexions utilisera pour créer 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 , qui est un emplacement défini dans le 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 des fabriques de connexions dans le contexte et les sous-contextes appropriés, comme illustré dans la figure suivante.

Dans la figure, la fabrique de connexions appelée Connection Factory 1 est stockée dans le dossier Fabriques de connexions du contexte initial appelé File System Initial Context.

Capture d'écran d'une fabrique de connexions dans le dossier Fabriques de connexions.

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 créer des connexions qu'à ce fournisseur de messagerie. Pour que le client JMS puisse créer des connexions à un autre fournisseur de messagerie, vous devez créer une nouvelle fabrique de connexions et spécifier le fournisseur de messagerie. Le transport en temps réel n'est 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 la JNDI, vous pouvez également créer des fabriques de connexions indépendantes du domaine et donc être utilisées à la fois pour la messagerie point-à-point et la messagerie de publication / abonnement (à l'aide de l'interface ConnectionFactory). Pour plus d'informations, voir Création d'une fabrique de connexions.

Si l'application JMS est destinée à utiliser uniquement la messagerie point-à-point ou uniquement la messagerie de publication / abonnement, vous pouvez sélectionner le domaine de messagerie spécifique lorsque vous créez la fabrique de connexions et qu'une fabrique de connexions spécifique au domaine est 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, vous pouvez souhaiter qu'une application JMS s'abonne à une rubrique (messagerie de publication / abonnement), puis lorsque l'application JMS reçoit un message particulier, elle envoie un autre message à une file d'attente (messagerie 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 sous la transaction de la même session ; les deux opérations peuvent ensuite être validées ou annulées en tant qu'unité de travail unique.

Pour plus d'informations, voir Utilisation des classes IBM MQ pour JMS.