Transacciones En Java
De Dos Ideas.
El API para manejo de transacciones en Java se conoce como JTA (Java Transaction API). JTA permite iniciar y hacer commit o rollback de transacciones. Usualmente no se utiliza JTA directamente, sino a través de otros frameworks y utilidades.
Propagación de transacciones
¿Qué ocurre si un método transaccional A invoca a otro método transaccional B? Aquí entra en juego la propagación de transacciones. Por default, las transacciones tienen propagación REQUIRED. En este tipo de propagación, el método invocado B participa de la transacción existente (iniciada por A). Además, si en otro momento invocamos al método B fuera de una transacción, este inicia una nueva.
Los tipos de propagación existentes son:
- MANDATORY : Participa de la transacción. Tira una excepción si no existe.
- NEVER : Se ejecuta sin transacción. Tira una excepción si existe una.
- NOT_SUPPORTED : Se ejecuta sin transacción. Suspende la transacción si existe una.
- REQUIRED : Participa de la transacción. Crea una nueva si no existe.
- REQUIRES_NEW : Crea una nueva transacción siempre. Suspende la transacción actual si existe.
- SUPPORTS : Participa de la transacción si existe. Se ejecuta sin transacción si no existe.