type tutorial transaction source significa que data jta

tutorial - que significa jta



¿Cuál es la diferencia entre JTA y una transacción local? (4)

¿Cuál es la diferencia entre JTA y una transacción local?

Un ejemplo que muestre cuándo usar JTA y cuándo usar una transacción local sería genial.


El tipo de transacción debe establecerse en "RESOURCE_LOCAL" para la aplicación Java SE y en "JTA" para la aplicación Java EE. "RESOURCE_LOCAL" puede funcionar bien en alguna aplicación web implementada en Tomcat, pero puede causar problemas cuando ejecuta su aplicación en entornos de glassfish.

Si está trabajando en transacciones distribuidas, debe usar "JTA" como su administrador de transacciones.


La Java Transaction API (JTA) es una de las API de Java Enterprise Edition (Java EE) que permite realizar transacciones distribuidas a través de múltiples recursos XA en un entorno Java.


La aplicación J2EE incluye suppoart fot DT a través de 2 especificaciones
JTA ---> Java Transaction API. Implementación de alto nivel y siempre está habilitada
JTS ---> Java Transaction Service.


JTA es una API general para gestionar transacciones en Java. Le permite iniciar, comprometer y deshacer transacciones de una manera neutral de recursos. El estado transaccional normalmente se almacena en TLS (Thread Local Storage) y se puede propagar a otros métodos en una pila de llamadas sin necesidad de que se pase un objeto de contexto explícito. Los recursos transaccionales pueden unirse a la transacción en curso. Si hay más de un recurso participando en dicha transacción, al menos uno de ellos debe ser un recurso denominado XA.

Una resource local transaction es una transacción que usted tiene con un único recurso específico usando su propia API específica. Por lo general, una transacción de este tipo no se propaga a otros métodos en una pila de llamadas y se requiere pasar algún objeto de contexto explícito. En la mayoría de las transacciones locales de recursos no es posible tener múltiples recursos participando en la misma transacción.

Utilizaría una transacción local de recursos en, por ejemplo, código JDBC de bajo nivel en Java SE. Aquí el objeto de contexto se expresa mediante una instancia de java.sql.Connection . Otros ejemplos de transacciones locales de recursos son los desarrolladores que crean aplicaciones empresariales alrededor de 2002. Dado que los gestores de transacciones (utilizados por JTA) eran caros, de código cerrado y complicados de configurar en esa época, las personas optaban por las variantes locales de recursos más baratas y fáciles de obtener.

Utilizaría una transacción JTA básicamente en cualquier otro escenario. Los servidores muy simples, pequeños, gratuitos y de código abierto como TomEE (25MB) o GlassFish (35MB) tienen soporte de JTA listo para usar. No hay nada que configurar y solo funcionan.

Finalmente, las tecnologías como EJB y Spring hacen que incluso JTA sea más fácil de usar al ofrecer declarative transactions . En la mayoría de los casos, se recomienda utilizarlos ya que son más fáciles, más limpios y menos propensos a errores. Tanto EJB como Spring pueden usar JTA bajo las cubiertas.