Comment ne Ressort du Lot, la gestion des transactions de travail?

J'essaie de comprendre comment Spring Batch n'gestion des transactions. Ce n'est pas une question technique mais plus d'ordre conceptuel: quelle approche Spring Batch utiliser et quelles sont les conséquences de cette approche?

Laissez-moi essayer de clarifier cette question un peu. Par exemple, en regardant la TaskletStep, je vois que généralement une étape d'exécution ressemble à quelque chose comme ceci:

  1. plusieurs JobRepository transactions pour préparer l'étape de métadonnées
  2. un transaction commerciale pour chaque morceau de processus
  3. plus JobRepository transactions pour mettre à jour les métadonnées étape avec les résultats de traitement des blocs

Ce qui semble faire sens. Mais quid d'une défaillance entre 2 et 3? Cela signifierait la transaction commerciale a été engagé, mais Spring Batch a été incapable d'enregistrer dans ses métadonnées internes. Si un redémarrage de retraiter les mêmes éléments encore, même si elles ont déjà été engagés. Droit?

Je suis à la recherche d'une explication de ces détails et les conséquences des décisions de conception made in Spring Batch. Est-ce documenté quelque part? Le Spring Batch guide de référence de a très peu de détails sur cette. Il explique simplement les choses de l'application point de vue du développeur.

InformationsquelleAutor klr8 | 2015-03-27