PostgreSQL La base de donnees la plus sophistiquee au monde.

Forums PostgreSQL.fr

Le forum officiel de la communauté francophone de PostgreSQL

Vous n'êtes pas identifié(e).

#1 19/01/2017 15:56:08

mba
Membre

Beaucoup de locks dans ma base causés par des session en idle

Bonjour,

J'ai constaté beaucoup de locks dans ma base et les sessions qui sont en cause sont idle :

postgres=# SELECT version();
                           version
-------------------------------------------------------------
PostgreSQL 9.4.8, compiled by Visual C++ build 1800, 64-bit
(1 ligne)

postgres=# SELECT count(*)
postgres-# FROM pg_locks l, pg_stat_activity s
postgres-# WHERE  s.pid = l.pid and s.state like 'idle%';
count
-------
   349
(1 ligne)
postgres=#

Dans la log error il y a plusieurs lignes de type:

2017-01-19 14:34:09 CET LOG:  n'a pas pu recevoir les données du client : An existing connection was forcibly closed by the remote host.
2017-01-19 14:34:09 CET LOG:  n'a pas pu recevoir les données du client : An existing connection was forcibly closed by the remote host.
2017-01-19 14:34:09 CET LOG:  n'a pas pu recevoir les données du client : An existing connection was forcibly closed by the remote host.

2017-01-19 14:34:09 CET LOG:  fin de fichier (EOF) inattendue de la connexion du client avec une
    transaction ouverte
2017-01-19 14:35:07 CET LOG:  n'a pas pu recevoir les données du client : An existing connection was forcibly closed by the remote host.
2017-01-19 14:45:29 CET ERREUR:  SAVEPOINT peut seulement être utilisé dans des blocs de transaction
2017-01-19 14:45:29 CET INSTRUCTION :  SAVEPOINT SAVEPOINT_EXECUTE

d'avance merci pour votre aide .

Cordialement.

Hors ligne

#2 19/01/2017 16:10:00

Marc Cousin
Membre

Re : Beaucoup de locks dans ma base causés par des session en idle

Si ce sont des sessions idle in transaction, ça peut être «normal» : elles sont en transaction, donc ont des verrous sur des objets… il suffit d'un select sur une table par exemple pour acquérir un verrou sur la table (juste pour éviter qu'on vous la drop pendant votre transaction). Par contre, avoir des sessions idle in transaction pendant longtemps, ce n'est pas bon signe pour une application: ça veut dire que quelqu'un dans cette session a démarré une transaction, mais ne l'a pas refermé.

Dernière modification par Marc Cousin (19/01/2017 16:10:24)

Hors ligne

#3 19/01/2017 16:28:12

mba
Membre

Re : Beaucoup de locks dans ma base causés par des session en idle

Merci !

Hors ligne

Pied de page des forums