Что это значит, когда процесс PostgreSQL "простаивает в транзакции"?



что это значит, когда a PostgreSQL процесс "простаивает в транзакции"?



на сервере, на который я смотрю, вывод "ps ax / grep postgres" я вижу 9 процессов PostgreSQL, которые выглядят следующим образом:



postgres: user db 127.0.0.1(55658) idle in transaction


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

601   2  

2 ответов:

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

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

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

Comments

    Ничего не найдено.