225 TransactionTooOld: TransactionTooOld
MongoDBWas bedeutet das?
Ein Befehl wurde in einer Multi-Document-Transaktion ausgeführt, aber seine Transaktionsnummer ist älter als die neueste Transaktionsnummer, die der Server für diese Session gesehen hat. Mit anderen Worten: Eine neuere Transaktion wurde gestartet, diese alte ist daher nicht mehr gültig.
Ursache
In derselben Session wurde eine neue Transaktion gestartet, bevor die alte abgeschlossen war, oder Transaktionsnummern wurden durch Parallelität in falscher Reihenfolge weitergezählt. Passiert meist, wenn ein Session-Objekt falsch geteilt wird oder mehrere Threads dieselbe Session nutzen.
Lösung
Verwalte den Lebenszyklus der Session für jede logische Transaktion korrekt; teile eine Session nicht gleichzeitig über mehrere Threads. Führe Transaktionen mit der vom Treiber empfohlenen withTransaction-/Callback-API aus (sie übernimmt Retries und Nummernverwaltung). Schließe die vorherige Transaktion mit Commit/Abort ab, bevor du eine neue startest.
Weitere Einträge zu dieser Datenbank
- 136 CappedPositionLostCapped collection position lost
- 28 PathNotViableCannot use the part of the path to traverse the element
- 216 ElectionInProgressElectionInProgress
- 246 SnapshotUnavailableSnapshotUnavailable
- 257 TransactionTooLargeTransactionTooLarge
- 276 IndexBuildAbortedIndexBuildAborted
- 86 IndexKeySpecsConflictIndexKeySpecsConflict