2008-09-09 2 views
60

Что означает, когда процесс PostgreSQL «простаивает в транзакции»?Что это значит, когда процесс PostgreSQL «бездействует в транзакции»?

На сервере, я смотрю, на выходе «пс топор | GREP Postgres» Я вижу процессы 9 PostgreSQL, что выглядеть следующим образом:

postgres: user db 127.0.0.1(55658) idle in transaction 

Означает ли это, что некоторые из процессов подвешены, ожидая совершения сделки? Любые указатели на соответствующую документацию оценены.

ответ

34

PostgreSQL manual указывает, что это означает, что транзакция открыта (внутри BEGIN) и неактивна. Скорее всего, пользователь подключается к монитору, который думает или печатает. У меня тоже много таких в моей системе.

Если вы используете Slony для репликации, то Slony-I FAQ предлагает idle in transaction может означать, что сетевое соединение было прекращено внезапно. Ознакомьтесь с обсуждением в этом FAQ для получения более подробной информации.

+7

Что означает только «простоя»? Открыты ли транзакции в состоянии «без дела»? – 2015-07-15 04:38:50

9

Как уже упоминалось, Re: BUG #4243: Idle in transaction, вероятно, лучше всего проверить таблицу pg_locks, чтобы увидеть, что блокируется, и это может дать вам лучший ключ, где проблема.

Смежные вопросы