Transacciones (atomicidad de propiedad) en EJB 3 se aplican únicamente a las operaciones de base de datos - Estoy en lo cierto?

StackOverflow https://stackoverflow.com/questions/3158861

Pregunta

Yo sé que las transacciones se podrían utilizar para llevar a cabo la atomicidad.

Al igual que si methodOne() methodTwo() methodThree() se les apalea en una transacción, en su caso del método falla, toda la operación se deshace. A rollback resultaría en una reversión de nivel de base de datos y como resultado la base de datos sería llevado a un estado, como lo era antes de la transacción.

Pero, ¿y si los métodos hicieron cambios en variables de estado o variables estáticas o escribieron a algunos archivos en el sistema de archivos? Mi opinión es que una "reducción" no se aplica para tales modificaciones no de base de datos y que esos cambios no se deshacen. Es mi entendimiento correcto?

¿Fue útil?

Solución

  

Transacciones (atomicidad de propiedad) en EJB 3 se aplica únicamente a las operaciones de base de datos - Tengo razón

?

No, no lo eres. Las transacciones se aplican a recursos transaccionales , la especificación Java EE reconocer tres tipos de recursos transaccionales:. Bases de datos JDBC, JMS destinos, y "otros servicios transaccionales se accede a través de JCA"

  

Pero, ¿y si los métodos hicieron cambios en variables de estado o variables estáticas o escribieron a algunos archivos en el sistema de archivos?

No son recursos transaccionales (a menos que la escritura al sistema de archivos a través de un conector JCA para la tarde).

Otros consejos

recursos del sistema de archivos no son transaccionales. Así que tendría que rodar sus cambios de nuevo. O que tendría que mirar a los adaptadores de recursos del sistema de archivos proporcionados por contenedores.

Las transacciones en ese contexto se refiere a las transacciones de bases de datos. Si coloca el código de Java, qué variables de alterar o salida de productos al sistema de archivos, no se está usando bien. Se debería abrir una transacción y realizar operaciones sólo para la base de datos.

A pesar de que, si su DBMS realizar cambios en su sistema de archivos (a través de un proceso de almacenamiento, por ejemplo), entonces usted debe comprobar la documentación de que los DBMS.

Por lo tanto, leer el código, si tiene código después de la orden de "YA transacción", debe revisarlo.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top