Detta verkar vara ett missförstånd. Tänk på min fjärva betoning :
VARNING tillhör uppenbarligen en annan samtidig transaktion , som inte startade en explicit transaktion. commit
är felplacerad där , eftersom den fungerar i autocommit-läge.
Om du fortsätter att läsa din logg hittar du förmodligen en post för commit längre ner:
Felsök
Om du varken hittar det eller en rollback
inmatning eller ett fel, skulle jag leta efter problem i din app som lämnar oengagerade zombitransaktioner, vilket skulle vara en dålig sak .
Starta undersökningen genom att kontrollera systemvyn pg_stat_activity
medan du är ansluten till din databas:
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%';
state
värde idle
är inte nödvändigtvis misstänkt - bara en session som väntar på input.
Men idle in transaction
och idle in transaction (aborted)
är.
Mer i handboken här eller dessa relaterade svar:
- Hur släpper man en PostgreSQL-databas om det finns aktiva anslutningar till den?
- Finns det en timeout för inaktiva PostgreSQL-anslutningar?