225 TransactionTooOld: TransactionTooOld
MongoDBQue signifie cette erreur ?
Une commande a été exécutée dans une transaction multi-documents, mais son numéro de transaction est plus ancien que le dernier numéro de transaction vu par le serveur pour cette session. Autrement dit, une transaction plus récente a été démarrée, donc cette ancienne transaction n'est plus valide.
Cause
Une nouvelle transaction a été démarrée dans la même session avant la fin de l'ancienne, ou les numéros de transaction ont avancé dans le désordre à cause de la concurrence. Cela arrive généralement lorsqu'un objet session est partagé de façon incorrecte ou que plusieurs threads utilisent la même session.
Comment la corriger
Gérez correctement le cycle de vie de la session pour chaque transaction logique ; ne partagez pas une session simultanément entre plusieurs threads. Exécutez les transactions avec l'API withTransaction/callback recommandée par le driver (elle gère les relances et la numérotation). Fermez la transaction précédente par commit/abort avant d'en démarrer une nouvelle.
Autres entrées pour ce moteur
- 136 CappedPositionLostCapped collection position lost
- 28 PathNotViableCannot use the part of the path to traverse the element (impossible d'utiliser cette partie du chemin pour parcourir l'élément)
- 216 ElectionInProgressElectionInProgress
- 246 SnapshotUnavailableSnapshotUnavailable
- 257 TransactionTooLargeTransactionTooLarge
- 276 IndexBuildAbortedIndexBuildAborted
- 86 IndexKeySpecsConflictIndexKeySpecsConflict