Michael,
I would like to track down what in the application is causing the deadlock, but it's a bit hard since it's a big app with lots going on. I can track down the PID of the transaction which is locking the tables, but is there anyway to go from the PID back to the SQL statement(s) in the transaction?
Thanks,
Si
Michael Fuhr wrote:
On Mon, Jan 31, 2005 at 11:43:45AM -0800, Si Chen wrote:
Thanks, Michael, for the input. Is there anyway in PostgreSQL to force some transactions to close (rollback if necessary)? I notice there is no way to release a LOCK manually.
I'm not aware of a way to terminate a transaction in another session short of killing its backend process. PostgreSQL 8.0 has a pg_cancel_backend() function, but it cancels only a backend's current query, not any outer transaction it might be part of.
Have you discovered what's holding the conflicting lock? It would be prudent to understand what's happening before killing one transaction just so another can succeed.
---------------------------(end of broadcast)--------------------------- TIP 5: Have you checked our extensive FAQ?
http://www.postgresql.org/docs/faq