2012-07-11 42 views
6

Mi pregunta se relaciona con el lote y las transacciones de Spring.commit-interval en Spring batch y manejo de reversiones

Digamos que he elegido commit-interval de 50 para uno de mis pasos.

Supongamos también que tengo 1000 registros en total y entre esos registros uno causará que el itemWriter 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 se haya completado el trabajo (e ignorado el fragmento problemático)?

Respuesta

12

Después de una cierta investigación, se me ocurrió lo siguiente:

Si un escritor artículo no puede cometer un trozo (aquí 50 artículos) lo que provoca un retroceso, Spring Batch volverá a ejecutar cada elemento del trozo problemática 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 elemento que provocó que Spring Batch redujera el fragmento.

+0

¿Puede mostrar una referencia sobre esto? –

+0

Buen punto. Esto es de un libro: Spring Batch in Action, Manning. – balteo

Cuestiones relacionadas