Re: determining bind values in deadlock situations
- From: Scott <oraracdba@xxxxxxxxx>
- To: Vlado.Barun@xxxxxxx
- Date: Tue, 3 Mar 2009 10:42:39 -0800 (PST)
The big question is how do you know you are getting a deadlock?
ORA-60, RAC or not will still get generated. It may take longer in RAC because
the detection method does change. However you can still get non-table deadlocks
in RAC that are not always dumped in to a tracefile. Then you need to run
hanganalyze or a systemstate dump and look for open chains. There serveral bugs
in 10g that related to library cache related deadlocks that are not always
indicated in a tracefile.
Scott
________________________________
From: "Barun, Vlado" <Vlado.Barun@xxxxxxx>
To: Jared Still <jkstill@xxxxxxxxx>
Cc: "oracle-l@xxxxxxxxxxxxx" <oracle-l@xxxxxxxxxxxxx>
Sent: Monday, March 2, 2009 7:21:12 PM
Subject: RE: determining bind values in deadlock situations
Jared,
Was your test done in a non-RAC environment?
I can find the rowid’s the way you mentioned in a non-RAC
environment, but not in a RAC environment.
There is no trace file generated for a deadlock in udump on any
of my RAC nodes…
Are you able to get a deadlock trace file in a RAC environment?
Thank you for the time you are spending on this…
Regards,
Vlado Barun, M.Sc.
Sr. Manager, Database Engineering and Operations
Jewelry Television
Mobile: 865 335 7652
Email: vlado.barun@xxxxxxx
From:Jared Still
[mailto:jkstill@xxxxxxxxx]
Sent: Monday, March 02, 2009 1:28 PM
To: Barun, Vlado
Cc: oracle-l@xxxxxxxxxxxxx
Subject: Re: determining bind values in deadlock situations
On Fri, Feb 27, 2009 at 5:54 PM, Barun, Vlado <Vlado.Barun@xxxxxxx> wrote:
Jared,
However I have trouble finding
the rowid’s.
Following are the relevant
excerpts of the lmd0 trace files from both nodes. Where are the rowid’s? Am I
looking in the correct files?
The deadlock trace file will be found in udump.
Here's an example from 10.2.0.2 on Windows
DEADLOCK DETECTED
[Transaction Deadlock]
Current SQL statement for this session:
SELECT "SQLX" , "EDTX" , "DBNA" ,
"CLAS" , "TYPE" , "OCCURS" , "SUBC" ,
"APPL" , "SECU" , "CNAM" , "CDAT" ,
"VERN" , "LEVL" , "RSTAT" , "RMAND" ,
"RLOAD" , "UNAM" , "UDAT" , "UTIME" ,
"DATALG" , "VARCL" , "DBAPL" , "FIXPT"
, "SSET" , "SDATE" , "STIME" , "IDATE"
, "ITIME" , "LDBNAME" , "UCCHECK" ,
"MAXLINELN" FROM "REPOSRC" WHERE "PROGNAME" = :A0
AND "R3STATE" = :A1 FOR UPDATE
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
TX-000a002f-00039963
55 367
X
48 358
X
TX-00030005-00007864
48 358
X
55
367 X
session 367: DID 0001-0037-00000004 session 358: DID
0001-0030-00000004
session 358: DID 0001-0030-00000004 session 367: DID
0001-0037-00000004
Rows waited on:
Session 358: obj - rowid = 00016AC6 - AAAWrGAAbAAGT9VAAE
(dictionary objn - 92870, file - 27, block - 1654613, slot - 4)
Session 367: obj - rowid = 00016AC6 - AAAWrGAAbAAGT9VAAD
(dictionary objn - 92870, file - 27, block - 1654613, slot - 3)
Information on the OTHER waiting sessions:
Session 358:
pid=48 serial=17 audsid=1283076 user: NN/SAPR3
O/S info: user: SapServiceXXX, term: MACHINE , ospid: NNN:NNNN,
machine: domain\machine
program:
disp+work.EXE
client info: 0
application name:XXXXXXXX
, hash value=888649399
action name: 389, hash value=1894668767
Current SQL Statement:
SELECT "SQLX" , "EDTX" , "DBNA" ,
"CLAS" , "TYPE" , "OCCURS" , "SUBC" ,
"APPL" , "SECU" , "CNAM" , "CDAT" ,
"VERN" , "LEVL" , "RSTAT" , "RMAND" ,
"RLOAD" , "UNAM" , "UDAT" , "UTIME" ,
"DATALG" , "VARCL" , "DBAPL" , "FIXPT"
, "SSET" , "SDATE" , "STIME" , "IDATE"
, "ITIME" , "LDBNAME" , "UCCHECK" ,
"MAXLINELN" FROM "REPOSRC" WHERE "PROGNAME" = :A0
AND "R3STATE" = :A1 FOR UPDATE
End of information on OTHER waiting sessions.
Jared
Other related posts:
- » determining bind values in deadlock situations - Barun, Vlado
- » Re: determining bind values in deadlock situations - Jared Still
- » Re: determining bind values in deadlock situations - Jared Still
- » RE: determining bind values in deadlock situations - Bobak, Mark
- » RE: determining bind values in deadlock situations - Barun, Vlado
- » RE: determining bind values in deadlock situations - Barun, Vlado
- » Re: determining bind values in deadlock situations - Stefan Knecht
- » RE: determining bind values in deadlock situations - Joel Wittenmyer
- » RE: determining bind values in deadlock situations - Yong Huang
- » Re: determining bind values in deadlock situations - Scott
- » RE: determining bind values in deadlock situations - Barun, Vlado
- » RE: determining bind values in deadlock situations - Barun, Vlado
- » RE: determining bind values in deadlock situations - Yong Huang
- » RE: determining bind values in deadlock situations - Tanel Poder
- » RE: determining bind values in deadlock situations - Barun, Vlado
- » RE: determining bind values in deadlock situations - Tanel Poder
- » RE: determining bind values in deadlock situations - Bobak, Mark
- » RE: determining bind values in deadlock situations - Barun, Vlado
- » RE: determining bind values in deadlock situations - Bobak, Mark
- » RE: determining bind values in deadlock situations - Tanel Poder
- » RE: determining bind values in deadlock situations - Barun, Vlado
- » RE: determining bind values in deadlock situations - Barun, Vlado
- » Re: determining bind values in deadlock situations - Joel Wittenmyer
- » Re: determining bind values in deadlock situations - Jared Still
- » RE: determining bind values in deadlock situations - Barun, Vlado
- » RE: determining bind values in deadlock situations - Joel Wittenmyer