Pregunta

Tengo para crear una operación de inserción masiva para nuestra herramienta de administración de usuarios. Hemos construido una pequeña biblioteca en la casa usando LDAP primavera, y todo funciona muy bien para la gestión de un solo usuario (ABM).

Me gustaría tratar de insertar cientos de registros a la vez y de reversión si algo va mal.

¿Hay una manera de crear las transacciones en LDAP como existe en las bases de datos?

Gracias por sus ideas.

¿Fue útil?

Solución

Esta es una continuación de @adrianboimvaser.

Sólo una nota que que el soporte de transacciones LDAP primavera no utiliza transacciones XA, sino una operación de compensación "lógico" por lo que la reversión de LDAP será una acción de compensación contra LDAP. Si bien esto es una mejora sobre ninguna transacción tenga en cuenta que esto no es lo mismo que una transacción típica "como existe en las bases de datos". es decir, propiedades de transacciones El ACID no son compatibles.

Tenga en cuenta que a pesar de la misma transacción lógica se utiliza, este no es una transacción JTA XA; No De dos fase de confirmación se realizará, y por lo tanto cometió y rollback puede rendir resultados inesperados.

Por ejemplo: Si va a añadir 100 entradas a LDAP cada registro se añadirá uno por uno a LDAP. Si el último complemento falla, entonces la acción de reversión será eliminar los creados anteriormente 99 entradas dentro de la transacción. Sin embargo, si por alguna razón (por ejemplo, la conectividad de red se ha reducido a LDAP, que es lo que causó el fracaso de la entrada número 100) las primeras 99 entradas en realidad no puede ser eliminado a continuación, a pesar de que usted ha tratado de deshacer la transacción tendrá una inconsistencia entre la base de datos y LDAP. es decir, habrá 99 registros en LDAP (porque no podían ser borrados) que no existe en la base de datos (porque esos registros no se insertan o se rodaron en realidad hacia atrás).

No estoy seguro de cuál es su situación, pero si usted tiene grandes actualizaciones frecuentes a LDAP es posible que desee considerar el uso de una base de datos real para evitar los dolores de cabeza de transacción, así como para optimizar el rendimiento ya que LDAP está diseñado para lecturas rápida con relativamente escrituras más lento.

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