transactions - processes - commit-interval en Spring batch y tratamiento de reversiones
spring batch processes (1)
Después de algunas investigaciones, se me ocurrió lo siguiente:
Si un escritor de elementos falla en la comisión de un trozo (en este caso 50 elementos) causando una reversión, Spring Batch volverá a ejecutar cada elemento del trozo problemático individualmente con una confirmación / transacción para cada artículo.
Por lo tanto, los 49 elementos estarán presentes en la base de datos, excepto el único elemento que provocó que Spring Batch redujera el fragmento.
Mi pregunta se relaciona con el lote de Spring y las transacciones.
Supongamos que he elegido un intervalo de compromiso de 50 para uno de mis pasos.
Supongamos también que tengo 1000 registros en total y entre esos registros, uno hará que el editor de elementos falle, causando una reversión de todo el fragmento (50 registros en mi ejemplo).
¿Cuáles son las estrategias para asegurarse de que los 49 registros válidos se escriban en la base de datos después de que el trabajo se haya completado (e ignorado el fragmento problemático)?