Tentative de mise à jour de l'étape d'exécution id=1 avec une mauvaise version (2), où la version actuelle est 1
Im en utilisant SpringBatch 2.1.7 libérer de base et de l'Infrastructure des pots pour lire un fichier CSV et de les enregistrer dans la base de données.
Intégré mon code avec le Printemps planificateur quartz à exécuter pour chaque minute, Le Lot est fonctionne bien avec la lecture et l'écriture, mais son échoue avec l'erreur "org.springframework.dao.OptimisticLockingFailureException: Tentative de mise à jour de l'étape d'exécution id=1 avec une mauvaise version (2), où la version actuelle est 1"
en raison de Tx conflits. Veuillez indiquer comment puis-je résoudre ce problème.
Salut un jour sur cette ?
Avez-vous résolu?
Ce sera peut-être résoudre votre problème ashamathavan.blogspot.dans/2010/12/...
Avez-vous résolu?
Ce sera peut-être résoudre votre problème ashamathavan.blogspot.dans/2010/12/...
OriginalL'auteur user2583922 | 2013-07-16
Vous devez vous connecter pour publier un commentaire.
J'ai eu cette même exception.
Dans mon cas, il a été causé par une défaillance de l'étape du processus, qui a été englouti. Spring Batch activé l'écrivain, même si le processeur avait échoué. Regardez à travers vos journaux pour s'assurer que votre processus étape est de compléter et de retourner quelque chose.
OriginalL'auteur MattC
Comme l'a souligné MattC, j'ai eu ce message d'erreur lorsque mon
ItemProcessor
a été mis sur écoute. Pour une raison quelconque, au cours de mon processeur activités, il a été la fermeture de la connexion de source de données avecjobrepository
, donc mon exception a été:À la fin de la stacktrace, j'ai pu trouver:
Afin d'identifier le problème, j'ai d'abord isoler la phase. J'ai construit un NoOpProcessor et un NoOpItemWriter. Ajusté la tasklet et il a bien fonctionné. Donc mon problème n'était pas dans le lecteur.
Puis je rolledback à mon "plein" ItemWriter mise en œuvre, et de nouveau, il a bien fonctionné. Donc mon problème n'était pas avec l'écrivain. Lorsque j'ai activé mon "plein" du processeur, l'erreur s'est produite à nouveau. Donc, l'erreur était en elle, et j'ai commencé à le débogage.
Donc, malheureusement, ma réponse est: debug...
OriginalL'auteur Bob Rivers
Cela peut également se produire lors de l'utilisation d'Hibernate et de la mise à jour vers une version > 5. Le problème, c'est que la séquence de génération par défaut modifié. Mais si vous travaillez toujours avec les séquences, il obtient tout mélangé. Indication de ce problème sont des erreurs et d'en avertir les journaux avant l'exception se produit. Ils sont quelque chose comme ceci:
SQL Error: 1, SQLState: 23000
etORA-00001: Unique Constraint (..) violation
.Nous avions négatif de la clé primaire dans la table (set de s'engager pour chaque élément).
Pour résoudre ce problème, définissez la propriété
hibernate.id.new_generator_mappings
àfalse
dans votre persistence.xml.Liens:
Alors que la recherche d'une solution, je suis tombé sur une autre question qui pourrait en être la cause: les entrées en Double à persister tout en utilisant
MapJobRepositoryFactoryBean
avecResourcelessTransactionManager
(ce qui n'est pas supposé persister les données.).Lien: http://ashamathavan.blogspot.com/2010/12/optimisticlockingfailureexception.html
OriginalL'auteur Terran