- Transacción en una base de datos
- Es un conjunto de ordenes que se ejecutan formando una unidad de trabajo, es decir, en forma indivisible o atomica. Una transaccion debe contar con ACID (un acronimo ingles) que quiere decir: Atomicidad, Consistencia, Aislamiento y Durabilidad.
- Transacciones manejadas por el container
-
En una transacción manejada por el container es necesario definir ciertos
atributos para especificar como debe controlarla. Existen seis tipos de
atributos del cual debe ser elegido uno de ellos y declarado en el
elemento <trans-attribute> del descriptor:
- Required. Se utiliza este modo si se desea que el bean se ejecute siempre dentro de una transacción. Si una transacción se encuentra en curso, el bean participa en ella. Si no existe ninguna transacción en curso, el container creará una especial para la ejecución del método del bean y al finalizar el container ejecuta un commit si es que no ha sido abortada por el bean. Este modo es utilizado cuando se necesita que el bean sea transaccional.
- RequiresNew. En este modo el método del bean siempre ejecutará en una nueva transacción. Si no existen transacciones, se crea una especial igual al modo Required. Si existe una transacción en curso, es suspendida mientras el bean ejecuta en una transacción independiente y una vez terminado el método del bean, la transacción inicial continúa su curso. Se puede utilizar este modo cuando el bean es transaccional pero no se desea que comparta instrucciones con otros beans o con el cliente.
- NotSupported. En este modo el bean no puede ser ejecutado dentro de una transacción. Por tanto si se está desarrollado una transacción, es suspendida su ejecución mientras se ejecuta el bean y luego es reanudada al finalizar el bean. Este modo puede ser utilizado cuando el bean no requiere de sistemas transaccionales o no se desean las propiedades ácidas para su ejecución. Por ejemplo se puede utilizar para ciertos beans con reportes de baja prioridad y no se desea bajar el performance del sistema con ellos.
- Supports. En este modo el comportamiento depende de si existe una transacción en curso. Si es así, es utilizada dentro del bean. Si no es así, el bean no se ejecuta dentro de una transacción. Dada la dualidad de comportamiento, este modo debe ser utilizado con cuidado. Puede utilizarse cuando se desea delegar la decisión de usar una transacción sobre otro bean.
- Mandatory. En este modo es obligatoria la existencia de una transacción en curso para su ejecución. De no ser así el container debe emitir la excepción javax.ejb.TransactionRequiredException si se está utilizando interfaces remotas o javax.ejb.TransactionRequiredLocalException si se utiliza una interfaz local. Este modo garantiza que la ejecución será realizada bajo una transacción que fue iniciada por el cliente. Es útil para beans que componen un workflow y que son parte de un sistema mayor.
- Never. En este modo es obligatoria la no existencia de una
transacción. De existir es emitida la excepción
java.rmi.RemoteException si el cliente es remoto, o
javax.ejb.EJBException si es un cliente local. Este modo permite
asegurar al cliente que este bean no necesita de utilizar transacciones y
puede ser utilizado en el desarrollo de sistemas no transaccionales por
naturaleza y asegurar que así será utilizado.
- Transacciones manejadas por el bean
- Seguridad
- Qué es JNDI
- Qué es el Query Language?
- Como crear tablas por medio del lenguaje de consultas.
- Que es una Excepciones en Java?
- Qué es una excepcion de la aplicaione.
- Qué es una excepcion del sitema.
- Cual es la sintaxis del Try en Java.
No hay comentarios:
Publicar un comentario