Quelle est la différence entre nonXADatasource avec jta = "true" et XADataSource?
J'ai été troublé par le fait que nous pouvons nous permettre d'utiliser les transactions JTA avec un non-XA-source de données. Lien vers la documentation. Quelle est donc la différence entre XA/non-XA sources de données? Pourquoi devrions-nous utiliser XA-les sources de données?
source d'informationauteur user3663882
Vous devez vous connecter pour publier un commentaire.
Une transaction XA, dans les termes les plus généraux, est une "transaction globale" qui peut s'étendre sur plusieurs ressources. Un non-XA transaction implique toujours une ressource.
Une transaction XA implique une coordination gestionnaire de transactions, avec une ou plusieurs bases de données (ou d'autres ressources, comme JMS) toutes les parties impliquées dans une seule transaction globale. Non-XA transactions ont aucune transaction coordinator, et une seule ressource est en train de faire toutes ses transactions travail lui-même (ce qui est parfois appelé les transactions locales).
jta="true", la validation des Transactions automatiquement.
Je me demandais à propos de moi-même ("utilisation JTA" option dans un non-XA source de données) alors j'ai testé plusieurs configurations. J'ai une transaction distribuée de la connexion de deux serveurs MySQL.
Voici mes résultats. Si j'ai:
Résultat: message d'Erreur "ne Pouvait pas s'engager dans des transactions sur l'entrée de la méta-connaissance de l'objet."
Résultat: Ils ne participent pas à la transaction distribuée. Chacun va s'engager séparément.
Résultat: même en tant que #2
Résultat: Les Travaux!
De ces, il ressemble à "utiliser JTA" option indique si elle va participer à une transaction distribuée si il y a un XA source de données.