DBAtlas · Atlas de operações de banco de dados

225 TransactionTooOld: TransactionTooOld

MongoDB

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

Abrir no DBAtlas →

Mais entradas deste banco