225 TransactionTooOld: TransactionTooOld
MongoDBO que significa?
Um comando foi executado dentro de uma transação multidocumento, mas seu número de transação é mais antigo que o último número de transação que o servidor viu para essa sessão. Ou seja, uma transação mais nova foi iniciada, então esta antiga não é mais válida.
Por que acontece?
Uma nova transação foi iniciada na mesma sessão antes de a antiga terminar, ou os números de transação avançaram fora de ordem devido à concorrência. Geralmente acontece quando um objeto de sessão é compartilhado incorretamente ou várias threads usam a mesma sessão.
Como resolver
Gerencie corretamente o ciclo de vida da sessão para cada transação lógica; não compartilhe uma sessão simultaneamente entre várias threads. Execute as transações com a API withTransaction/callback recomendada pelo driver (ela cuida dos retries e do gerenciamento dos números). Feche a transação anterior com commit/abort antes de iniciar uma nova.
Mais entradas deste banco
- 136 CappedPositionLostCapped collection position lost
- 28 PathNotViableCannot use the part of the path to traverse the element (não é possível usar essa parte do caminho para percorrer o elemento)
- 216 ElectionInProgressElectionInProgress
- 246 SnapshotUnavailableSnapshotUnavailable
- 257 TransactionTooLargeTransactionTooLarge
- 276 IndexBuildAbortedIndexBuildAborted
- 86 IndexKeySpecsConflictIndexKeySpecsConflict