Dette ser ud til at være en misforståelse. Overvej min fed fremhævelse :
ADVARSELEN hører åbenbart til en anden samtidig transaktion , som ikke startede en eksplicit transaktion. commit
er forlagt der , da den kører i autocommit-tilstand.
Hvis du bliver ved med at læse din log, vil du sandsynligvis finde en post til commit længere nede:
Fejlretning
Hvis du hverken finder det eller en rollback
indtastning eller en fejl, ville jeg tjekke for problemer i din app, der efterlader uengagerede zombietransaktioner, hvilket ville være en dårlig ting .
Start undersøgelsen ved at tjekke systemvisningen pg_stat_activity
mens du er tilsluttet din 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%';
state
værdi idle
er ikke nødvendigvis mistænkelig - bare en session, der venter på input.
Men idle in transaction
og idle in transaction (aborted)
er.
Mere i manualen her eller disse relaterede svar:
- Hvordan dropper man en PostgreSQL-database, hvis der er aktive forbindelser til den?
- Er der en timeout for inaktive PostgreSQL-forbindelser?