Обсуждение: WHo is locking me?
Hi, A process hangs forever. When using this query... SELECT pg_stat_get_backend_pid(s.backendid) AS procpid, pg_stat_get_backend_activity(s.backendid) AS current_query FROM (SELECT pg_stat_get_backend_idset() AS backendid) AS s where pg_stat_get_backend_activity(s.backendid) not like '<insuff%' and pg_stat_get_backend_activity(s.backendid) not like '<IDLE>'; I get... procpid | current_query ---------+--------------------------------------------------------------------- 26702 | SELECT pg_stat_get_backend_pid(s.backendid) AS procpid, : pg_stat_get_backend_activity(s.backendid) AS current_query : FROM (SELECT pg_stat_get_backend_idset() AS backendid) AS s : where pg_stat_get_backend_activity(s.backendid) not like '<insuff%' : and pg_stat_get_backend_activity(s.backendid) not like '<IDLE>'; 21282 | update cmr_lastno set lastisn=lastisn+1 where tablename='DANNY'; 25936 | <IDLE> in transaction <== This is the locker And the question: - What exactly is the locker doing? - Can I retrieve the Client PID somewhere (then by process name I will dive into the code). Thanks a lot Danny Abraham BMC Software CTM&D Business Unit 972-52-4286-513 danny_abraham@bmc.com
"Abraham, Danny" <danny_abraham@bmc.com> wrote: > procpid | current_query > ---------+--------------------------------------------------------------------- > 25936 | <IDLE> in transaction <== This is the locker > - What exactly is the locker doing? At the time you ran that, it wasn't doing anything in the database, but it had not committed or rolled back the transaction it had previously started. > - Can I retrieve the Client PID somewhere (then by process name I > will dive into the code). If you're on Linux and this is a TCP connection, netstat should make that easy. Are you? -Kevin