Qu'est-ce que cela signifie lorsqu'un processus PostgreSQL est « inactif dans une transaction » ?

StackOverflow https://stackoverflow.com/questions/51019

  •  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.

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top