Что это значит, когда процесс PostgreSQL "простаивает в транзакции"?
что это значит, когда a PostgreSQL процесс "простаивает в транзакции"?
на сервере, на который я смотрю, вывод "ps ax / grep postgres" я вижу 9 процессов PostgreSQL, которые выглядят следующим образом:
postgres: user db 127.0.0.1(55658) idle in transaction
означает ли это, что некоторые процессы зависают, ожидая фиксации транзакции? Любые указатели на соответствующую документацию приветствуются.
2 ответов:
на руководство PostgreSQL указывает, что это означает, что транзакция открыта (внутри BEGIN) и простаивает. Скорее всего, это пользователь, подключенный с помощью монитора, который думает или печатает. У меня их тоже полно в моей системе.
Если вы используете Slony для репликации, однако,Slony-I FAQ предполагает
idle in transactionможет означать, что подключение к сети было прервано внезапно. Проверьте обсуждение FAQ для получения более подробной информации.
Как уже упоминалось здесь: Re: ошибка #4243: простоя в транзакции вероятно, лучше всего проверить вашу таблицу pg_locks, чтобы увидеть, что блокируется, и это может дать вам лучшую подсказку, где лежит проблема.
Comments