Bonjour,
Je développe une application spring batch 2.0
je dois traiter un fichier contenant deux type de records et les envoyer dans seule et même table d'une DB.
Je dois effectuer des commit par bloc de même records et cela me pose un réel problème.
En fait je parviens à commiter par bloc. En utilisant l'attribut 'chunk-completion-policy' au lieu du commit interval.
Mon writer définit dans le chunk ne fait absolument rien. C'est le processor qui fait appel à un service spring qui gère lui même les transactions et les commits...
Avec un peu de code métier je parviens à effectué mes commits par blocs de même records.
Mon problème se situe au niveau de la gestion des erreurs dans mon fichier en entrée.
Etant donné que j'ai utilisé l'attribut chunk-completion-policy au lieu du commit-interval, le fichier en entrée est d'abord parcouru dans son entièreté avant d'aller dans le processor... Si il y a une erreur de lecture, tout s'arrête, par contre si le code du processor est lancé, cela signifie que tous les records du fichiers d'entrée sont correct : Aucune nécessité de commiter par bloc.
Je voudrai donc que mon application parviens à commiter les blocs corrects avant de s'arrêter parce qu'elle a détecté une erreur dans le fichier (ParsingError par exemple)
De même, je ne comprends pas très bien la signification de l'attribut processor-transactional définit au niveau du chunk
En fichier attaché, mon fichier de configuration
Partager