From: | "Albe Laurenz" <laurenz(dot)albe(at)wien(dot)gv(dot)at> |
---|---|
To: | <gnanam(at)zoniac(dot)com>, <pgsql-admin(at)postgresql(dot)org> |
Subject: | Re: Very long "<IDLE> in transaction" query |
Date: | 2012-05-04 11:08:18 |
Message-ID: | D960CB61B694CF459DCFB4B0128514C207D5026B@exadv11.host.magwien.gv.at |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-admin |
Gnanakumar wrote:
>> SELECT application_name, client_addr, client_hostname, client_port
>> FROM pg_stat_activity
>> WHERE procpid = 14740;
>> (Replace 14740 of the process ID of the "idle in transaction"
backend).
>> Look on the client machine and find the process that holds TCP port
>> "client_port" open (on Linux you can use "lsof" for that).
> Ours is a web-based application and all calls are made "only" from
where the
> web server is running. No external calls are allowed in my case.
Hence,
> the "only" client machine in my case is the web server.
Then you need to identify the web server process/thread that has
client_port open and fix the problem there. If you get that process
to close the transaction or terminate, your problem is solved.
You can also terminate a database session from the server with
the pg_terminate_backend function.
The interesting thing to know would be where in your web application
a transaction got left open, so that it does not happen again.
Yours,
Laurenz Albe
From | Date | Subject | |
---|---|---|---|
Next Message | Gnanakumar | 2012-05-04 11:32:27 | Re: Very long "<IDLE> in transaction" query |
Previous Message | Gnanakumar | 2012-05-04 09:52:47 | Re: Very long "<IDLE> in transaction" query |