40 votes

Atomikos vs JOTM vs Bitronix vs ?

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.

Par ailleurs, les principaux serveurs d'applications (WebSphere, JBoss, Glassfish) ne disposent-ils pas de leur propre gestionnaire de transactions conforme à JTA ? Dans ces environnements, utiliseriez-vous encore ces implémentations tierces ?

50voto

Pascal Thivent Points 295221

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.).

7voto

Pawel Sidoryk Points 31

J'ai testé Atomikos et JOTM avec Jetty. Atomikos a bien fonctionné et je le recommande pleinement. J'ai réalisé, par exemple, des tests unitaires automatisés pour tester les transactions distribuées dans mon application et ces tests ont bien fonctionné.

En ce qui concerne le JOTM, je suis certain qu'il falsifie le protocole de validation en deux phases, au moins parfois. J'avais une base de données PostgreSQL avec les capacités de commit à 2 phases désactivées et JOTM était capable de fonctionner comme si j'avais de vraies transactions distribuées. Les vrais gestionnaires de transactions (par exemple celui implémenté dans GlassFish) signalaient une erreur dans un tel cas.

J'ai utilisé JPA2 avec Hibernate 4 dans mon application si cela a de l'importance.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X