Questo sembra essere un malinteso. Considera la mia enfasi in grassetto :
L'AVVISO appartiene ovviamente a una transazione simultanea diversa , che non ha avviato una transazione esplicita. Il commit
è fuori posto lì , poiché sta operando in modalità autocommit.
Se continui a leggere il tuo log, probabilmente troverai una voce per il commit più in basso:
Debug
Se non trovi né quello né un rollback
voce né un errore, verificherei la presenza di problemi nella tua app lasciando transazioni zombi non vincolate, il che sarebbe una cosa negativa .
Avvia l'indagine controllando la vista di sistema pg_stat_activity
mentre sei connesso al tuo database:
SELECT *
FROM pg_stat_activity
WHERE datname = current_database() -- only current database
AND pid <> pg_backend_pid() -- except your current session
AND state LIKE 'idle%';
Lo state
valore idle
non è necessariamente sospetto, è solo una sessione in attesa di input.
Ma idle in transaction
e idle in transaction (aborted)
sono.
Maggiori informazioni nel il manuale qui o queste risposte correlate:
- Come eliminare un database PostgreSQL se ci sono connessioni attive ad esso?
- C'è un timeout per le connessioni PostgreSQL inattive?