Qu'est-ce que cela signifie lorsqu'un processus PostgreSQL est « inactif dans une transaction » ?
-
09-06-2019 - |
Question
Qu'est-ce que cela signifie lorsqu'un PostgreSQL le processus est « inactif dans la transaction » ?
Sur un serveur que je regarde, la sortie de "ps ax | grep postgres", je vois 9 processus PostgreSQL qui ressemblent à ce qui suit :
postgres: user db 127.0.0.1(55658) idle in transaction
Cela signifie-t-il que certains processus sont bloqués, en attendant qu'une transaction soit validée ?Tous les pointeurs vers la documentation pertinente sont appréciés.
La solution
Le Manuel PostgreSQL indique que cela signifie que la transaction est ouverte (dans BEGIN) et inactive.Il s'agit très probablement d'un utilisateur connecté à l'aide du moniteur qui réfléchit ou tape.J'en ai aussi beaucoup sur mon système.
Toutefois, si vous utilisez Slony pour la réplication, le FAQ Slony-I suggère idle in transaction
peut signifier que la connexion réseau a été interrompue brusquement.Consultez la discussion dans cette FAQ pour plus de détails.
Autres conseils
Comme mentionné ici : Concernant:BOGUE #4243 :Inactif en transaction il est probablement préférable de vérifier votre table pg_locks pour voir ce qui est verrouillé et cela pourrait vous donner une meilleure idée de l'origine du problème.