DBAtlas · Atlas für Datenbankbetrieb

225 TransactionTooOld: TransactionTooOld

MongoDB

Was 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.

In DBAtlas öffnen →

Weitere Einträge zu dieser Datenbank