Normally when you set the trace to the error and the trace level to 10 the max trace, it would spit out the entire stack

One other query that you can use is

select sid,
sql_address,
terminal,
SUBSTR(OBJECT_NAME,1,20),
b.sql_text
FROM v$session,
v$sqlarea b ,
USER_OBJECTS
WHERE process in ( select distinct process from v$locked_object )
and sql_address = b.address AND USER_OBJECTS.OBJECT_ID IN ( SELECT OBJECT_ID FROM v$locked_object);


to find the object causing the dead lock.


This link under metalink would get your the scripts to monitor the locking

http://metalink.oracle.com/metalink/...nical_Articles

One other thing is that when deadlock occours oracle would create an ora-600 message and would create a trace file at udump for the corresponding sid. Check them for more detail.

Sam
Sam