Cosa significa quando un processo PostgreSQL è “inattivo nella transazione”?
-
09-06-2019 - |
Domanda
Cosa significa quando a PostgreSQL il processo è "inattivo nella transazione"?
Su un server che sto guardando, nell'output di "ps ax | grep postgres" vedo 9 processi PostgreSQL simili ai seguenti:
postgres: user db 127.0.0.1(55658) idle in transaction
Ciò significa che alcuni processi sono bloccati, in attesa del commit di una transazione?Eventuali indicazioni sulla documentazione pertinente sono apprezzate.
Soluzione
IL Manuale PostgreSQL indica che ciò significa che la transazione è aperta (all'interno di BEGIN) e inattiva.Molto probabilmente è un utente connesso tramite il monitor che sta pensando o digitando.Ne ho molti anche nel mio sistema.
Se utilizzi Slony per la replica, tuttavia, il file Domande frequenti su Slony-I suggerisce idle in transaction
potrebbe significare che la connessione di rete è stata interrotta improvvisamente.Controlla la discussione in quella FAQ per maggiori dettagli.
Altri suggerimenti
Come accennato qui: Rif:ERRORE n. 4243:Inattivo nella transazione probabilmente è meglio controllare la tabella pg_locks per vedere cosa viene bloccato e questo potrebbe darti un indizio migliore su dove si trova il problema.