2010-03-11 20 views
11

Almacena los atributos del archivo (tamaño, tiempo de actualización ...) en la base de datos. Entonces, el problema es cómo administrar la transacción para la base de datos y el archivo.¿Cómo administrar la transacción para la base de datos y el sistema de archivos en el entorno Java EE?

En un entorno Java EE, JTA solo puede gestionar la transacción de la base de datos. En caso de que la actualización de la base de datos sea exitosa pero la operación del archivo falla, ¿debo escribir el método de eliminación de archivos para esto? Además, la operación del archivo en el contenedor EJB viola la especificación EJB.

¿Cuál es su opinión?

Respuesta

5

El acceso a recursos externos, como un sistema de archivos, idealmente debe pasar por un conector JCA . Aunque hay varios mensajes en torno a la discusión de este, nunca he encontrado una lista para usar conector JCA para el acceso transaccional para el sistema de archivos, así que empecé a escribir uno:

En cuanto a otros proyectos:

Tenga en cuenta que tan pronto como usted tiene más de un participante transaccional, la aplicación. el servidor realmente necesita usar transacción distribuida y las cosas se vuelven más complicadas. No debe subestimar esta complejidad (por ejemplo, la base de datos tiene otro mecanismo de tiempo de espera para la transacción distribuida).

Otro enfoque ligero a considerar es usar un SFSB que escribe en el sistema de archivos. Si implementa la interfaz SessionSynchronization, obtiene beforeCompletion y afterCompletion devoluciones de llamada. El último indica si la transacción fue comprometida o revertida y usted hace la limpieza si es necesario. Luego puede implementar un comportamiento transaccional.

3

manualmente. Probablemente necesite escribir transacciones compensatorias para esto.

4

JTA no es solo para bases de datos, se puede utilizar por mucho tiempo con cualquier otro recurso si ese recurso admite transacciones XA. Por ejemplo, XADisk habilita una de esas integraciones de sistemas de archivos con transacciones XA. Por lo tanto, también puede resolver el problema de la consistencia del sistema de archivos y la base de datos que ha estado tratando de resolver.

Espero que ayude.

Nitin

+1

+1 Nunca había oído hablar de este. Es bueno saberlo. – ewernli

Cuestiones relacionadas