Je suis novice en matière de JTA et de ses gestionnaires de transactions sous-jacents. Quelqu'un peut-il m'expliquer les avantages et les inconvénients de chacun d'entre eux ? N'hésitez pas à en ajouter d'autres que je n'ai pas énumérés dans le titre.
Les gestionnaires de transactions autonomes que je connais sont les suivants Bitronix , SimpleJTA , Tyrex (mort ?), JOTM (utilisé dans Jonas), GeronimoTM/Jencks (utilisé dans Geronimo), JBossTS (utilisé dans JBoss) et Atomikos .
Je ne les ai jamais testés de manière approfondie (et c'est ce que vous devriez faire si vous deviez en choisir un), je ne peux donc pas fournir une liste exhaustive des avantages et des inconvénients (et cela demanderait un certain travail). Mais voici quelques liens :
Juste au cas où, voici mon point de vue très personnel :
- J'ai vu beaucoup de plaintes concernant le JOTM.
- Je pense que GeronimoTM/Jencks manque de documentation.
- SimpleJTA n'implémente pas JTS et n'est pas actif.
- Bitronix dispose d'une documentation décente mais n'offre pas de support.
- Atomikos est un produit impressionnant, bien documenté et qui offre une assistance.
- JBossTS, alias ArjunaTS, est définitivement un produit mature (cf. annonce de l'annonce de l'acquisition pour un peu d'histoire) et offre un soutien.
Personnellement, si je devais en choisir un, je présélectionnerais Atomikos et JBossTS et les testerais de manière approfondie.
Par ailleurs, les principaux serveurs d'applications (WebSphere, JBoss, Glassfish) ne disposent-ils pas de leur propre gestionnaire de transactions conforme à JTA ?
Bien sûr qu'ils le font, JTA fait partie de la spécification Java EE, un serveur Java EE doit le supporter.
Dans ces environnements, utiliseriez-vous encore ces implémentations tierces ?
Non, j'utiliserais le gestionnaire de transactions fourni (pour des raisons de simplicité, de support, etc.).