Co to znaczy, że proces PostgreSQL jest „bezczynny w transakcji”?


87

Co to znaczy, że proces PostgreSQL jest „bezczynny w transakcji”?

Na serwerze, na który patrzę, w wyniku polecenia „ps ax | grep postgres” widzę 9 procesów PostgreSQL, które wyglądają następująco:

postgres: user db 127.0.0.1(55658) idle in transaction

Czy to oznacza, że ​​niektóre procesy są zawieszone, czekając na zatwierdzenie transakcji? Wszelkie wskazówki dotyczące odpowiedniej dokumentacji są mile widziane.

Odpowiedzi:


56

Podręcznik PostgreSQL wskazuje, że oznacza to, że transakcja jest otwarta (wewnątrz BEGIN) i bezczynna. Najprawdopodobniej jest to użytkownik podłączony za pomocą monitora, który myśli lub pisze. Mam ich też dużo w swoim systemie.

Jeśli jednak używasz Slony do replikacji, FAQ Slony-I sugeruje, że idle in transactionmoże oznaczać, że połączenie sieciowe zostało nagle przerwane. Sprawdź dyskusję w tym FAQ, aby uzyskać więcej informacji.


9
Co oznacza tylko „bezczynność”? Czy transakcje w stanie „bezczynności” również są otwarte?
Yousuf Sultan

2
Co oznacza monitor ?
Abdull

2
@Abdull Klient psql. „Monitor” to (najwyraźniej) archaiczne określenie oprogramowania używanego do sterowania bazą danych.
Anonymoose


Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.