type tutorial transactionattribute transaction significa que ejemplo java transactions java-ee jta

java - tutorial - Atomikos vs JOTM vs Bitronix vs?



que significa jta (2)

Soy nuevo en JTA y son los gerentes de transacciones subyacentes. ¿Alguien puede explicar los pros / contras de cada uno de estos? Siéntase libre de agregar otros que no figuran en el título.

Además, ¿los principales servidores de aplicaciones (WebSphere, JBoss, Glassfish) no tienen su propio administrador de transacciones compatible con JTA? En esos entornos, ¿seguirías usando estas implementaciones de terceros?


Soy nuevo en JTA y son los gerentes de transacciones subyacentes. ¿Alguien puede explicar los pros / contras de cada uno de estos? Siéntase libre de agregar otros que no figuran en el título.

Los administradores de transacciones independientes que conozco incluyen Bitronix , SimpleJTA , Tyrex (¿muerto?), JOTM (utilizado en Jonas), GeronimoTM/Jencks (utilizado en Geronimo), JBossTS (utilizado en JBoss) y Atomikos .

Nunca los he probado todos extensivamente (y esto es lo que tendrías que hacer si tienes que elegir uno), así que no puedo proporcionar un pros / contra exhaustivo (y eso requeriría algo de trabajo). Pero aquí hay algunos enlaces:

Por las dudas, este es mi punto de vista personal:

  • He visto muchas quejas sobre JOTM.
  • Creo que a GeronimoTM / Jencks le falta documentación.
  • SimpleJTA no implementa JTS y no está activo.
  • Bitronix es una documentación decente pero no ofrece soporte.
  • Atomikos es un producto impresionante, bien documentado y ofrece soporte.
  • JBossTS también conocido como ArjunaTS es definitivamente un producto maduro (ver el anuncio de la adquisición de algunos antecedentes) y ofrece soporte.

Personalmente, preseleccionaría Atomikos y JBossTS y los probaría como hardcore si tuviera que elegir uno.

Además, ¿los principales servidores de aplicaciones (WebSphere, JBoss, Glassfish) no tienen su propio administrador de transacciones compatible con JTA?

Por supuesto que sí, JTA es parte de la especificación Java EE, un servidor Java EE tiene que soportarlo.

En esos entornos, ¿seguirías usando estas implementaciones de terceros?

No, utilizaría el administrador de transacciones provisto (por simplicidad, soporte, etc.).


He probado Atomikos y JOTM con Jetty. Atomikos funcionó bien y lo recomiendo totalmente. Hice, por ejemplo, pruebas unitarias automatizadas para probar transacciones distribuidas en mi aplicación y estas pruebas funcionaron bien.

En lo que respecta a JOTM, estoy bastante seguro de que falsifica el protocolo de compromiso de 2 fases al menos algunas veces. Tenía una base de datos PostgreSQL con las capacidades de confirmación en dos fases desactivadas y JOTM podía funcionar como si tuviera transacciones reales distribuidas. Los gestores de transacciones reales (por ejemplo, el implementado en GlassFish) informaron un error en tal caso.

Usé JPA2 con Hibernate 4 en mi aplicación si es que importa.