225 TransactionTooOld: TransactionTooOld
MongoDBNe demek?
Bir multi-document transaction içinde bir komut çalıştırılmaya çalışıldı ancak transaction numarası, sunucunun o oturum için gördüğü en güncel transaction numarasından eski. Yani daha yeni bir transaction başlatıldığı için bu eski transaction artık geçersiz.
Neden olur?
Aynı oturumda (session) eski bir transaction tamamlanmadan yeni bir transaction başlatıldı ya da eşzamanlılık nedeniyle transaction numaraları sıra dışı ilerledi. Genellikle oturum nesnesinin yanlış paylaşılması veya birden çok thread'in aynı oturumu kullanması nedeniyle olur.
Nasıl çözülür?
Her mantıksal işlem için oturum yaşam döngüsünü doğru yönetin; bir oturumu eşzamanlı olarak birden çok thread'de paylaşmayın. Transaction'ları sürücünün önerdiği withTransaction/callback API'siyle çalıştırın (bu, yeniden deneme ve numara yönetimini üstlenir). Yeni bir transaction'a başlamadan önce öncekini commit/abort ile kapatın.
Aynı motorda diğer kayıtlar
- 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