Deadlock error in INSERT statement

Posted by Gnanam on Stack Overflow See other posts from Stack Overflow or by Gnanam
Published on 2009-10-05T14:23:26Z Indexed on 2010/03/23 15:03 UTC
Read the original article Hit count: 372

Filed under:
|

We've got a web-based application. There is a time-bound database operation (INSERTs and UPDATEs) in the application which takes more time to complete, hence this particular flow has been changed into Java Thread so it will not wait (block) for the complete database operation to be completed.

My problem is, if more than 1 user come across this particular flow, I'm facing the following error thrown by PostgreSQL:

org.postgresql.util.PSQLException: ERROR: deadlock detected
  Detail: Process 13560 waits for ShareLock on transaction 3147316424; blocked by process 13566.
Process 13566 waits for ShareLock on transaction 3147316408; blocked by process 13560.

Above error is consistently thrown in INSERT statements.

Additional Information: 1) I have PRIMARY KEY defined in this table. 2) There are FOREIGN KEY references in this table. 3) Separate database connection is passed to each Java Thread.

Technologies Web Server: Tomcat v6.0.10 Java v1.6.0 Servlet Database: PostgreSQL v8.2.3 Connection Management: pgpool II

© Stack Overflow or respective owner

Related posts about sql

Related posts about postgresql