Hello,
executing a multi-threaded application, i get puzzling deadlocks.
Indeed, each thread works on the same tables but not on same rows !
Notes :
- I have tried to put INITRANS value of all tables and index to 100 instead
of 1 but it did not change anything.
- I use Oracle sequences, and sequence name appears in Oracle log. Can Oracle
sequence induce deadlock ? I don't think so but..
Here's a sample of Oracle log:
- 2001-11-28 16:54:45.280
- SESSION ID:(16.2237) 2001-11-28 16:54:45.270
DEADLOCK DETECTED
Current SQL statement for this session:
DELETE FROM TRK_ELEMENTARYTRANSPORT WHERE TRK_ELEMENTARYTRANSPORT_ID=:1
The following deadlock is not an ORACLE error. It is a
deadlock due to user error in the design of an application
or from issuing incorrect ad-hoc SQL. The following
information may aid in determining the deadlock:
Deadlock graph:
---------Blocker(s)-------- ---------Waiter(s)---------
Resource Name process session holds waits process session holds waits
TM-000067fb-00000000 18 16 SX SSX 23 20 SX SSX
TM-000067fb-00000000 23 20 SX SSX 18 16 SX SSX
session 16: DID 0001-0012-00000002 session 20: DID 0001-0017-00000002
session 20: DID 0001-0017-00000002 session 16: DID 0001-0012-00000002
Rows waited on:
Session 20: no row
Session 16: no row
Thanks.
Received on Thu Nov 29 2001 - 03:49:35 CST