/ / IBM MQManager en tant que gestionnaire de transactions XA avec Spring-jms et Spring-tx - ibm-mq, spring-jms, transactions distribuées

IBM MQManager en tant que gestionnaire de transactions XA avec Spring-jms et Spring-tx - ibm-mq, spring-jms, transactions distribuées

Nous essayons d'utiliser IBM MQ Manager en tant que gestionnaire XA Transaction avec prise en charge des transactions spring-jms et spring. IBM MQ Manager fonctionne-t-il correctement avec la prise en charge de spring-jta?

Réponses:

2 pour la réponse № 1

Vous ne pouvez pas utiliser le client WMQ JMS (qui est ce queque spring-jms utiliserait) avec MQ QueueManager agissant en tant que gestionnaire de transactions XA. L'intention est qu'une application JMS soit contrôlée via un gestionnaire de transactions implémenté par JTA (c'est-à-dire un serveur d'applications Java EE).

Vous pouvez toutefois utiliser le client Java WMQ (c'est-à-dire non JMS) et laisser MQ QueueManager agir en tant que gestionnaire de transactions XA (non JTA).

Comme @COLINHY a dit que vous pouvez l'utiliser d'une autre manièreautour. Le gestionnaire de transactions Spring sera le coordinateur utilisant JTA, et spring-jms pourra ensuite être utilisé pour importer le client JMS WMQ et le gestionnaire de files d'attente MQ en tant que ressource transactionnelle.


2 pour la réponse № 2

Nous avons utilisé l'inverse: en utilisant Spring Management comme gestionnaire de transactions global, MQ XA en tant que branche de transaction. Cela a bien fonctionné.


1 pour la réponse № 3

Pour clarifier la prise en charge du client MQ JMS.

Lorsqu'il est installé sur un serveur certifié JavaEE,l'adaptateur MQ Resourced (alimenté par le client JMS) fait en sorte que MQ QueueManager fonctionne dans un rôle de gestionnaire de ressources, coordonné par le serveur JavaEE.

En dehors de l'environnement JavaEE, le client JMS n'est pas pris en charge lors de l'utilisation d'un autre fournisseur JTA. (si cela vous intéresse, veuillez créer un besoin)

Avec les classes Java MQ (aussi appelé Base Java) - MQ peutêtre un gestionnaire de transactions, mais uniquement avec celui-ci qui coordonne lui-même MQ et une base de données (telle que Oracle et DB2). Il n'est pas possible de demander à MQ de coordonner quoi que ce soit d'autre.