Vous n'êtes pas identifié(e).
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
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)
Marc.
Hors ligne
Merci !
Hors ligne