Terminar sesión de usuario IDLE
- From: David Acevedo Salazar <dgacevedo(at)yahoo(dot)es>
- To: pgsql-es-ayuda(at)postgresql(dot)org
- Subject: Terminar sesión de usuario IDLE
- Date: Mon, 30 Jul 2007 12:11:23 -0400
- Message-id: <46AE0DAB.1020900@yahoo.es> <text/plain>
Hola a todos los de la lista
Tengo el siguiente problema y quisiera ver si Uds se han encontrado
con este problema y que alternativas ha aplicado para terminar la sesión
de un usuario que se encuentra en estado "<IDLE> in transaction" y que
aparece con bloqueos de registros, en la actualidad estoy ejecutando el
siguiente SQL para detectar bloqueos :
select pg_class.relname, pg_locks.transaction, pg_locks.mode,
pg_locks.granted as "g",
pg_stat_activity.query_start,
age(now(),pg_stat_activity.query_start) as "age",
pg_stat_activity.procpid,
pg_database.datname , pg_stat_activity.client_addr,
pg_locks.page, pg_locks.tuple, pg_locks.relation,
rpad(pg_stat_activity.current_query, 200)
from pg_stat_activity,pg_database , pg_locks
left outer join pg_class on
(pg_locks.relation = pg_class.oid)
where pg_locks.pid=pg_stat_activity.procpid
and pg_locks.database = pg_database.oid
and pg_locks.mode like '%ExclusiveLock'
order by query_start;
En algunas ocasiones realizar un pg_cancel_backend(pid) de esas
sesiones logra hacer que desaparezca el bloqueo pero en otras ocasiones
este comando parece no funcionar .. he leido que ejecutar un kill -9 pid
no es recomendable y por ahora reiniciar mi BD tampoco es factible ...
que otras alternativas me siguieren ?
Gracias
David Acevedo Salazar
Home |
Main Index |
Thread Index