Different Deadlock trace files
Hello,
In our application we use to have deadlock issues and i need to analyze that
trace file.Some time i use to have trace files which is having current session and
waiting session information and with modules and queries they are executing in top section
of trace file only , no need to read below data in trace file . But some times the
trace files are different..all update or select for update queries are spread
across the file and very difficult to understand which was locking what. Is that in rac or 11g environment
deadlock trace file is having different structure,?
One more question regarding deadlock ...many time we found that the current
query is updating on table A and waiting query updating on table B .. Is it possible
to have deadlock scenario when queries are working on different tables ? or
many be it is happening only if tables are in relation like parent and child ?
hi,
Are you referring to .trm extention trace files which youare unable to read?
Here is good explanation of reading deadlock trace files
ORA-00060 Deadlock trace files.. how to read?
Thanks,
Ajay More
http://www.moreajays.com
Similar Messages
-
Get blocker from the (self) deadlock trace file
Hi,
Recently I had an issue on a 10.2.0.4 single instance database where deadlocks were occurring. The following test case reproduces the problem (I create three parent tables, one child table with indexed foreign keys to all three parent tables and a procedure which performs an insert into the child table in an autonomous transaction):
create table parent_1(id number primary key);
create table parent_2(id number primary key);
create table parent_3(id number primary key);
create table child( id_c number primary key,
id_p1 number,
id_p2 number,
id_p3 number,
constraint fk_id_p1 foreign key (id_p1) references parent_1(id),
constraint fk_id_p2 foreign key (id_p2) references parent_2(id),
constraint fk_id_p3 foreign key (id_p3) references parent_3(id)
create index i_id_p1 on child(id_p1);
create index i_id_p2 on child(id_p2);
create index i_id_p3 on child(id_p3);
create or replace procedure insert_into_child as
pragma autonomous_transaction;
begin
insert into child(id_c, id_p1, id_p2, id_p3) values(1,1,1,1);
commit;
end;
insert into parent_1 values(1);
insert into parent_2 values(1);
commit;And now the action that causes the deadlock:
SQL> insert into parent_3 values(1);
1 row created.
SQL> exec insert_into_child;
BEGIN insert_into_child; END;
ERROR at line 1:
ORA-00060: deadlock detected while waiting for resource
ORA-06512: at "SCOTT.INSERT_INTO_CHILD", line 4
ORA-06512: at line 1My question is: how can I determine which table the insert into CHILD was waiting on? It could be waiting on PARENT_1, PARENT_2, PARENT_3, a combination of them or even on CHILD if I tried to insert a duplicate primary key in CHILD. Since we have the full testcase we know that it was waiting on PARENT_3 (or better said, it was waiting for the "parent" transaction to perform a commit/rollback), but is it possible to determine that solely from the deadlock trace file? I'm asking that because to pinpoint the problem I had to perform redo log mining, pl/sql tracing with DBMS_TRACE and manual debugging on a clone of the production database which was restored to a SCN just before the deadlock occurred. So, I had to do quite a lot of work to get to the blocker table and if this information is already in the deadlock trace file, it would have saved me a lot of time.
Below is the deadlock trace file. From the "DML LOCK" part I guess that the child table (tab=227042) holds a mode 3 lock (SX), all the other three parent tables have mode 2 locks (SS), but from this extract I can't see that parent_3 (tab=227040) is blocking the insert into child:
Deadlock graph:
---------Blocker(s)-------- ---------Waiter(s)---------
Resource Name process session holds waits process session holds waits
TX-00070029-00749150 23 476 X 23 476 S
session 476: DID 0001-0017-00000003 session 476: DID 0001-0017-00000003
Rows waited on:
Session 476: obj - rowid = 000376E2 - AAA3biAAEAAA4BwAAA
(dictionary objn - 227042, file - 4, block - 229488, slot - 0)
Information on the OTHER waiting sessions:
End of information on OTHER waiting sessions.
Current SQL statement for this session:
INSERT INTO CHILD(ID_C, ID_P1, ID_P2, ID_P3) VALUES(1,1,1,1)
----- PL/SQL Call Stack -----
object line object
handle number name
3989eef50 4 procedure SCOTT.INSERT_INTO_CHILD
391f3d870 1 anonymous block
SO: 397691978, type: 36, owner: 39686af98, flag: INIT/-/-/0x00
DML LOCK: tab=227042 flg=11 chi=0
his[0]: mod=3 spn=35288
(enqueue) TM-000376E2-00000000 DID: 0001-0017-00000003
lv: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 res_flag: 0x6
res: 0x398341fe8, mode: SX, lock_flag: 0x0
own: 0x3980df420, sess: 0x3980df420, proc: 0x39859c660, prv: 0x398341ff8
SO: 397691878, type: 36, owner: 39686af98, flag: INIT/-/-/0x00
DML LOCK: tab=227040 flg=11 chi=0
his[0]: mod=2 spn=35288
(enqueue) TM-000376E0-00000000 DID: 0001-0017-00000003
lv: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 res_flag: 0x6
res: 0x3983386e8, mode: SS, lock_flag: 0x0
own: 0x3980df420, sess: 0x3980df420, proc: 0x39859c660, prv: 0x3983386f8
SO: 397691778, type: 36, owner: 39686af98, flag: INIT/-/-/0x00
DML LOCK: tab=227038 flg=11 chi=0
his[0]: mod=2 spn=35288
(enqueue) TM-000376DE-00000000 DID: 0001-0017-00000003
lv: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 res_flag: 0x6
res: 0x398340f58, mode: SS, lock_flag: 0x0
own: 0x3980df420, sess: 0x3980df420, proc: 0x39859c660, prv: 0x398340f68
SO: 397691678, type: 36, owner: 39686af98, flag: INIT/-/-/0x00
DML LOCK: tab=227036 flg=11 chi=0
his[0]: mod=2 spn=35288
(enqueue) TM-000376DC-00000000 DID: 0001-0017-00000003
lv: 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 res_flag: 0x6
res: 0x39833f358, mode: SS, lock_flag: 0x0
own: 0x3980df420, sess: 0x3980df420, proc: 0x39859c660, prv: 0x39833f368
----------------------------------------Thank you in advance for any comments,
JureHi Jonathan,
thank you very much for your reply which more than answers my question. I think it actually clears a lot of doubts I had about TX locks, since your mentioning of "undo segment header transaction table" pointed me in the right direction for further research on this topic (honestly, I didn't know what's "behind" TX locks). So if I understood correctly, to determine which table is the blocker (in the testcase presented above), you have to have some kind of history of executed SQL statements (e.g. by mining redo logs)?
The statement you wrote:
At this point, and with your example, the waiting session is waiting on a TX (transaction) lock - this means it has not idea (and no interest) in the actual data involved, it is merely waiting for an undo segment header transaction table slot to clear. and the example with the savepoint you gave, made me think of some of the consequences of that behaviour. That is probably the reason why it is not possible to get the "blocker" table from v$lock (although sometimes it's possible to get it from v$session.row_wait_obj#) when a session tries to change a row another session holds in exclusive mode, e.g.:
create table t1 (id number);
insert into t1 values (1);
commit;
Session 126:
SID = 126> update t1 set id=2 where id=1;
1 row updated.
Session 146:
SID = 146> update t1 set id=2 where id=1;
{session hangs}
In a separate session:
SQL> SELECT CASE
2 WHEN TYPE = 'TM'
3 THEN (SELECT object_name
4 FROM user_objects
5 WHERE object_id = l.id1)
6 END object_name,
7 SID, TYPE, id1, id2, lmode, request, BLOCK
8 FROM v$lock l
9 WHERE SID IN (126, 146)
10 ORDER BY SID, TYPE, 1
11 /
OBJECT_NAME SID TY ID1 ID2 LMODE REQUEST BLOCK
T1 126 TM 68447 0 3 0 0
126 TX 262153 4669 6 0 1
T1 146 TM 68447 0 3 0 0
146 TX 262153 4669 0 6 0The only thing I can tell from this output is that session 146 is trying to get a TX lock in exclusive mode, and session 126 is blocking it, the reason of the blocking being unknown from this view alone.
Since I'd like to get a better understanding on the mechanics behind this (e.g. why the blocked session can't know the segment that is waiting for, since it has to go to the same segment's data block to find the address of the undo segment header transaction table slot? ; can we get the content/structure of the transaction table in the data block - probably by making a block dump?), do you have any source where a more in depth explanation what happens "behind the scenes" is available (perhaps in Oracle Core?)? Some time ago I found a link on your blog http://jonathanlewis.wordpress.com/2010/06/21/locks/ which points to Franck Pachot's article where he nicely explains the various locking modes: http://knol.google.com/k/oracle-table-lock-modes#. There I also found Kyle Hailey's presentation about locks http://www.perfvision.com/papers/09_enqueues.ppt where slide 23 nicely depicts what's going on when acquiring TX locks. Of course I'll try to search on my own, but any other source (especially from an authority like you) is more than welcome.
Thank you again and regards,
Jure -
Hi,
I've gotten a bunch of deadlocks in 8.1.7 and I'd like to be able to make use of the trace files, but the files are really cryptic and I can't find any documentation anywhere that explains how to read them. Moreover, I can't find any software that knows how to process them into something useful (tkprof just gives a basically empty file in return).
Anyone have any ideas?
TIAHi
My current application (still under development) is experiencing Oracle
deadlock problems.
The application is written using VB thru ADO and COM, Oracle 816.
My problem is that, while I can review the trace file produced, I can't
figure out what the actual deadlock is occurring on. I have seen deadlock
trace files that clearly state "table blah", but in this case, I get:
*** 2003-06-21 14:32:03.841
*** SESSION ID:(27.31211) 2003-06-21 14:32:03.810
DEADLOCK DETECTED
Deadlock graph:
---------Blocker(s)--------
Resource Name process session holds waits process session holds
waits
DX-0000003b-00000000 22 18 X 24 27
X
session 18: DID 0001-0018-0000003C session 27: DID
0001-0018-0000003C
Rows waited on:
Session 27: no row
*** 2001-06-21 14:32:03.857
ksedmp: internal or fatal error
ORA-00060: deadlock detected while waiting for resource
Is there something like TKPROF that will process the trace file and give
me
more info on what is happening? It looks like I am waiting for a resource
to be freed, but which one is the question.
thanks for any help. -
Deadlock trace analyze DID 0001-...
Please help me!
Does anybody knows that in an deadlock trace file what that means: "DID 0001-0017-000025CF"
Parts of sample file:
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-00060007-00049749 25 33 X 23 9 X
TX-0007000d-00037829 23 9 X 25 33 X
session 33: DID 0001-0019-000020EF* session 9: DID 0001-0017-000025CF
session 9: DID 0001-0017-000025CF session 33: DID 0001-0019-000020EF
Rows waited on:
Session 9: obj - rowid = 00013176 - AAATZSAAeAAAmSyAAH
I would like to know that is it an important fact, or not.
Thx,
GyulaHi,
SEssion 33 is blocking Session 9.
Object id = 1132910 - Object which is having blocking issue
select object_name from all_objects where object_id =1132910
TX is structured <rbs><slot><wrap>
TX-00060007-00049749 25 *33* X 23 9 X - blocking session
TX-0007000d-00037829 23 *9* X 25 33 X - blocked session
*25* - process *33* - blocker X - holds wait
*23* - process *9* - waiter X- same as above
as it does not have any row - might havig with some constraints issue on column level like unqiue constraints
Check that
HTH
- Pavan Kumar N -
Trace file in different location
Dear all,
11g on Solaris 10.
My oracle home (dump location) located in a file system of 10GB.. I need to trace a session which will generate huge trace file. Is there anyway I can have the trace file generated in a different location where I have enough space to allow the growth of the trace file.
Thanks
KaiPlease refer:
http://www.oracle.com/technology/oramag/oracle/09-mar/o29asktom.html?_template=/ocom/print
Edited by: SKU on 19-Dec-2009 05:10 -
How to find username from trace file for deadlock due to user
This is the info from the trace file.
*** 2003-08-18 08:07:40.590
*** SESSION ID:(560.60728) 2003-08-18 08:07:40.560
DEADLOCK DETECTED
Current SQL statement for this session:
SELECT S.AVAILABLE,GET_AVAIL(S.PRODUCT_ID),S.ON_HAND,S.W_PL,S.PRODUCT_GROUP,S.SIZE_ID,S.COLOR_ID,S.ONEZ,S.COST,IS_IT_KIT(:b1),
NVL(PR.R_AVAIL,0),NVL(PR.R_SOLD,0),NVL(PR.UNIT_OF_MEASURE,'QTY'),NVL(DECODE(PR.AV_CT,0,1,PR.AV_CT),1) FROM ACNTV.SKU S,ACNTV
.PRERED_QUANTITIES PR WHERE S.PRODUCT_ID = PR.PRODUCT_ID (+) AND S.PRODUCT_ID = :b1 FOR UPDATE OF S.ON_HAND,
S.W_PL,PR.R_AVAIL
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-0021004b-000125d8 366 560 X 329 135 X
TX-0008003b-000125fc 329 135 X 366 560 X
session 560: DID 0001-016E-00000002 session 135: DID 0001-0149-00000002
session 135: DID 0001-0149-00000002 session 560: DID 0001-016E-00000002
Rows waited on:
Session 135: obj - rowid = 00017FAC - AAAX+sAAPAAAS9/AAP
Session 560: obj - rowid = 0001586C - AAAVhsABXAAAAIRAAN
We know the objects ,but how to find out the username ?
ThanksHi;
Please see:
How To Check If a Profile Option Is Set In Oracle Application [ID 470102.1]
How to list E-Business Suite Profile Option values for all levels using SQLPlus [ID 201945.1]
How to Search all of the Profile Options for a Specific Value [ID 282382.1]
Regard
Helios -
hi forum
i want to find out the paths for different trace files . ie where
database trace files get stored, where workprocess trace files get stored?Hi Ramesh
Go to the below link and search for the tearm <b>trace files</b>.All your questions will get answered.Its really a good one.
https://wiki.sdn.sap.com/wiki/display/EP/Portallogandtracefiles
Reawrd points if useful. -
Trace file with different name is alert log file.
I am strange today
i found a trace file generated in alert log file with name
/bdump/stlbas_cjq0_1880.trc:
but when i am trying to find out in bdump folder i cannot found
any file with this named. instead i found /bdump/stlbas_cjq0_1853.trc
is there any possibility of being this scenario ?
database version:- 10.2.0.4
Os:- sun solaries spark 64 bits
Regards
HalimThe trace file has been removed/deleted from an OS user. I think you should verify that with OS logs.
Thanks -
How to generate trace file from different session?
I have a cron job which starts several Oracle stored proc (Oracle 9.2). I want to generate a trace file when the job is running. I know I can use this alter session command before I start this job. But this is my session not the job session. So this command won't generate trace file for job's session.
ALTER SESSION SET EVENTS '10046 TRACE NAME CONTEXT FOREVER, LEVEL 8';
Appreciate any ideas.
Thanks.
S.Easiest way is to use database control/grid control - click trace session button!
The 'old fashioned way is'
begin
DBMS_SYSTEM.SET_SQL_TRACE_IN_SESSION(SID,serial#,TRUE);
end;
find sid and serial# in a select from v$session
There are other ways too but this is probably the easiest.
You'll need appropriate privileges to run this .
Cheers,
Harry -
Enq: TX - row lock contention-Trace file shared.
Hi Team,
I am having enq: TX - row lock contention in top wait event. it is occuring between 10pm - 2am.
We are having sqlloader job running every one hour(conventional path). But for the specific period of time i am getting "Global Enqueue Services Deadlock detected". Between 10-5. I analyzed realated trace file it is make me little confusion.I found there are four insert query culprit for this locking. out of four sql , tow of them are ran by same SID, other two insert ran by same id. I got confused because how same sid locking them self. trace file below. Please help me on this. during this period oracle maintanence window is active.Thanks
Trace file:
*** 2012-10-09 03:40:31.135
user session for deadlock lock 0x15365e060
sid: 1104 ser: 22256 audsid: 8797820 user: 49/iurth flags: 0x45
pid: 71 O/S info: user: oracle, term: UNKNOWN, ospid: 8601
image: oracle@sgh0909
client details:
O/S info: user: user, term: , ospid: 30888
machine: sgj89909 program: sqlldr@sgj89909 (TNS V1-V3)
application name: SQL Loader Conventional Path Load, hash value=1935272243
action name: der/sample.ctl, hash value=3241011749
current SQL:
INSERT INTO sample (ID,SU,TIME,PMAN_S,CV_OS,PRD_US,P_DS,PM_LY_DRD_S,PMP_PY_DIDS,PP_S,PMP_RECV_FRMS) VALUES (:NE,:SID,CAST(TO_DATE(:PNG_TE, 'DDMMYYY,PMP_TRAN_FRMS,PMP_RECV_FRMS) VALUES (:NE_ID,:SUB_ID,CAST(TO_DATE(:POLLING_TIME, 'DDMMYYYYHH24MISS') AS DATE),:PMP_TRAN_OCTS,:PMP_RECV_OCTS,:PMP_DISCARD_US,:PMP_DISCARD_DS,:PMP_POLICY_DISCARD_US,:PMP_POLICY_DISCARD_DS,:PMP_TRAN_FRMS,:PMP_RECV_FRMS) ÷ {+ (Cõ{+ (Cõ{+ ð÷ ð÷ ú;6üΠì/' „P' û[þ‡»q hdšÙÿ – $µ + л{+ XdšÙÿ cšÙÿ л{+ M L šÙ ƒß @ešÙÿ ’Ü cšÙÿ lcšÙÿ M „P' L
*** 2012-10-09 03:40:31.533
Short stack dump:
<-ksedsts()+315<-ksdxfstk()+32<-ksdxcb()+1764<-sspuser()+112<-__restore_rt()<-semtimedop()+10<-sskgpwwait()+265<-skgpwwait()+156<-ksliwat()+1546<-kslwaitctx()+162<-kjusuc()+3868<-ksipgetctx()+1456<-ksqcmi()+22853<-ksqgtlctx()+4311<-ksqgelctx()+601<-ktcwit1()+333<-ktbgtl0()+1321<-kdimod0()+4581<-kdiblLockPiece()+968<-kdiblLockRange()+1639<-kdiblcfls()+189<-kdiblFinish1()+978<-kdibliFinish()+73<-kxibDoFinish()+90<-kxibFinish()+431<-qerltcEndLoadProcessing()+614<-qerltcLoadStateMachine()+858<-qerltcInsertValues()+218<-qerltcFetch()+1373<-insexe()+1095<-opiexe()+5609<-opiodr()+1220<-ttcpip()+1227<-opitsk()+1449<-opiino()+1026<-opiodr()+1220<-opidrv()+580<-sou2o()+90<-opimai_real()+145<-ssthrdmain()+177<-main()+215<-__libc_start_main()+244<-_start()+41
user session for deadlock lock 0x1537feef8
sid: 1107 ser: 44863 audsid: 8797823 user: 49/iurth flags: 0x45
pid: 57 O/S info: user: oracle, term: UNKNOWN, ospid: 4540
image: oracle@sgh0909
client details:
O/S info: user: user, term: , ospid: 7569
machine: sgj89909 program: sqlldr@sgj89909 (TNS V1-V3)
application name: SQL Loader Conventional Path Load, hash value=1935272243
action name: der/sample.ctl, hash value=3241011749
current SQL:
INSERT INTO sample (ID,SU,TIME,PMAN_S,CV_OS,PRD_US,P_DS,PM_LY_DRD_S,PMP_PY_DIDS,PP_S,PMP_RECV_FRMS) VALUES (:NE,:SID,CAST(TO_DATE(:PNG_TE, 'DDMMYYY,PMP_TRAN_FRMS,PMP_RECV_FRMS) VALUES (:NE_ID,:SUB_ID,CAST(TO_DATE(:POLLING_TIME, 'DDMMYYYYHH24MISS') AS DATE),:PMP_TRAN_OCTS,:PMP_RECV_OCTS,:PMP_DISCARD_US,:PMP_DISCARD_DS,:PMP_POLICY_DISCARD_US,:PMP_POLICY_DISCARD_DS,:PMP_TRAN_FRMS,:PMP_RECV_FRMS) ÷ {+ (Cõ{+ (Cõ{+ ð÷ ð÷ –R<üΠì/' „P' hdšÙÿ _ž $µ + л{+ XdšÙÿ cšÙÿ л{+ M L šÙ ƒß @ešÙÿ ’Ü cšÙÿ lcšÙÿ M „P' L
Short stack dump:
<-ksedsts()+315<-ksdxfstk()+32<-ksdxcb()+1764<-sspuser()+112<-__restore_rt()<-semtimedop()+10<-sskgpwwait()+265<-skgpwwait()+156<-ksliwat()+1546<-kslwaitctx()+162<-kjusuc()+3868<-ksipgetctx()+1456<-ksqcmi()+22853<-ksqgtlctx()+4311<-ksqgelctx()+601<-ktcwit1()+333<-ktbgtl0()+1321<-kdimod0()+4581<-kdiblLockPiece()+968<-kdiblLockRange()+1639<-kdiblcfls()+189<-kdiblFinish1()+978<-kdibliFinish()+73<-kxibDoFinish()+90<-kxibFinish()+431<-qerltcEndLoadProcessing()+614<-qerltcLoadStateMachine()+858<-qerltcInsertValues()+218<-qerltcFetch()+1373<-insexe()+1095<-opiexe()+5609<-opiodr()+1220<-ttcpip()+1227<-opitsk()+1449<-opiino()+1026<-opiodr()+1220<-opidrv()+580<-sou2o()+90<-opimai_real()+145<-ssthrdmain()+177<-main()+215<-__libc_start_main()+244<-_start()+41
user session for deadlock lock 0x1528de490
sid: 1107 ser: 44863 audsid: 8797823 user: 49/iurth flags: 0x45
pid: 57 O/S info: user: oracle, term: UNKNOWN, ospid: 4540
image: oracle@sgh0909
client details:
O/S info: user: user, term: , ospid: 7569
machine: sgj89909 program: sqlldr@sgj89909 (TNS V1-V3)
application name: SQL Loader Conventional Path Load, hash value=1935272243
action name: der/sample.ctl, hash value=3241011749
current SQL:
INSERT INTO sample (ID,SU,TIME,PMAN_S,CV_OS,PRD_US,P_DS,PM_LY_DRD_S,PMP_PY_DIDS,PP_S,PMP_RECV_FRMS) VALUES (:NE,:SID,CAST(TO_DATE(:PNG_TE, 'DDMMYYY,PMP_TRAN_FRMS,PMP_RECV_FRMS) VALUES (:NE_ID,:SUB_ID,CAST(TO_DATE(:POLLING_TIME, 'DDMMYYYYHH24MISS') AS DATE),:PMP_TRAN_OCTS,:PMP_RECV_OCTS,:PMP_DISCARD_US,:PMP_DISCARD_DS,:PMP_POLICY_DISCARD_US,:PMP_POLICY_DISCARD_DS,:PMP_TRAN_FRMS,:PMP_RECV_FRMS) ÷ {+ (Cõ{+ (Cõ{+ ð÷ ð÷ ÍïEüΠì/' „P' hdšÙÿ €¦ $µ + л{+ XdšÙÿ cšÙÿ л{+ M L šÙ ƒß @ešÙÿ ’Ü cšÙÿ lcšÙÿ M „P' L
*** 2012-10-09 03:40:32.452
Short stack dump:
<-ksedsts()+315<-ksdxfstk()+32<-ksdxcb()+1764<-sspuser()+112<-__restore_rt()<-semtimedop()+10<-sskgpwwait()+265<-skgpwwait()+156<-ksliwat()+1546<-kslwaitctx()+162<-kjusuc()+3868<-ksipgetctx()+1456<-ksqcmi()+22853<-ksqgtlctx()+4311<-ksqgelctx()+601<-ktcwit1()+333<-ktbgtl0()+1321<-kdimod0()+4581<-kdiblLockPiece()+968<-kdiblLockRange()+1639<-kdiblcfls()+189<-kdiblFinish1()+978<-kdibliFinish()+73<-kxibDoFinish()+90<-kxibFinish()+431<-qerltcEndLoadProcessing()+614<-qerltcLoadStateMachine()+858<-qerltcInsertValues()+218<-qerltcFetch()+1373<-insexe()+1095<-opiexe()+5609<-opiodr()+1220<-ttcpip()+1227<-opitsk()+1449<-opiino()+1026<-opiodr()+1220<-opidrv()+580<-sou2o()+90<-opimai_real()+145<-ssthrdmain()+177<-main()+215<-__libc_start_main()+244<-_start()+41
user session for deadlock lock 0x1528de2e0
sid: 1104 ser: 22256 audsid: 8797820 user: 49/iurth flags: 0x45
pid: 71 O/S info: user: oracle, term: UNKNOWN, ospid: 8601
image: oracle@sgh0909
client details:
O/S info: user: user, term: , ospid: 30888
machine: sgj89909 program: sqlldr@sgj89909 (TNS V1-V3)
application name: SQL Loader Conventional Path Load, hash value=1935272243
action name: der/sample.ctl, hash value=3241011749
current SQL:
INSERT INTO sample (ID,SU,TIME,PMAN_S,CV_OS,PRD_US,P_DS,PM_LY_DRD_S,PMP_PY_DIDS,PP_S,PMP_RECV_FRMS) VALUES (:NE,:SID,CAST(TO_DATE(:PNG_TE, 'DDMMYYY,PMP_TRAN_FRMS,PMP_RECV_FRMS) VALUES (:NE_ID,:SUB_ID,CAST(TO_DATE(:POLLING_TIME, 'DDMMYYYYHH24MISS') AS DATE),:PMP_TRAN_OCTS,:PMP_RECV_OCTS,:PMP_DISCARD_US,:PMP_DISCARD_DS,:PMP_POLICY_DISCARD_US,:PMP_POLICY_DISCARD_DS,:PMP_TRAN_FRMS,:PMP_RECV_FRMS) ÷ {+ (Cõ{+ (Cõ{+ ð÷ ð÷ DlJüΠì/' „P' hdšÙÿ ¾® $µ + л{+ XdšÙÿ cšÙÿ л{+ M L šÙ ƒß @ešÙÿ ’Ü cšÙÿ lcšÙÿ M „P' L
Short stack dump:
<-ksedsts()+315<-ksdxfstk()+32<-ksdxcb()+1764<-sspuser()+112<-__restore_rt()<-semtimedop()+10<-sskgpwwait()+265<-skgpwwait()+156<-ksliwat()+1546<-kslwaitctx()+162<-kjusuc()+3868<-ksipgetctx()+1456<-ksqcmi()+22853<-ksqgtlctx()+4311<-ksqgelctx()+601<-ktcwit1()+333<-ktbgtl0()+1321<-kdimod0()+4581<-kdiblLockPiece()+968<-kdiblLockRange()+1639<-kdiblcfls()+189<-kdiblFinish1()+978<-kdibliFinish()+73<-kxibDoFinish()+90<-kxibFinish()+431<-qerltcEndLoadProcessing()+614<-qerltcLoadStateMachine()+858<-qerltcInsertValues()+218<-qerltcFetch()+1373<-insexe()+1095<-opiexe()+5609<-opiodr()+1220<-ttcpip()+1227<-opitsk()+1449<-opiino()+1026<-opiodr()+1220<-opidrv()+580<-sou2o()+90<-opimai_real()+145<-ssthrdmain()+177<-main()+215<-__libc_start_main()+244<-_start()+41
Global blockers dump start:---------------------------------
DUMP LOCAL BLOCKER/HOLDER: block level 3 res [0x2a001d][0x1cb9d],[TX]
----------resource 0x1341d3c30----------------------
resname : [0x2a001d][0x1cb9d],[TX]
Local node : 4
dir_node : 4
master_node : 4
hv idx : 14
hv last r.inc : 32
current inc : 32
hv status : 0
hv master : 4
open options : dd
grant_bits : KJUSERNL KJUSEREX
grant mode : KJUSERNL KJUSERCR KJUSERCW KJUSERPR KJUSERPW KJUSEREX
count : 3 0 0 0 0 1
val_state : KJUSERVS_NOVALUE
valblk : 0x5f4f4354532c504d505f524543565f4f OCTS,PMPRECV_O
access_node : 4
vbreq_state : 0
state : x0
resp : 0x1341d3c30
On Scan_q? : N
Total accesses: 8568
Imm. accesses: 7210
Granted_locks : 1
Cvting_locks : 3
value_block: 5f 4f 43 54 53 2c 50 4d 50 5f 52 45 43 56 5f 4f
GRANTED_Q :
lp 0x1537feef8 gl KJUSEREX rp 0x1341d3c30 [0x2a001d][0x1cb9d],[TX]
master 4 gl owner 0x154b13128 possible pid 4540 xid 39000-0005-00048D1F bast 0 rseq 1329 mseq 0 history 0x14951495
open opt KJUSERDEADLOCK
CONVERT_Q:
lp 0x1537ff0a8 gl KJUSERNL rl KJUSERPR rp 0x1341d3c30 [0x2a001d][0x1cb9d],[TX]
master 4 gl owner 0x155b0dd28 possible pid 12781 xid 37000-0005-00082EBC bast 0 rseq 1329 mseq 0 history 0x49a5149a
convert opt KJUSERGETVALUE
lp 0x1513ef168 gl KJUSERNL rl KJUSERPR rp 0x1341d3c30 [0x2a001d][0x1cb9d],[TX]
master 4 gl owner 0x159aaf240 possible pid 1347 xid 48000-0005-0001FACA bast 0 rseq 1329 mseq 0 history 0x49a5149a
convert opt KJUSERGETVALUE
lp 0x15365e060 gl KJUSERNL rl KJUSERPR rp 0x1341d3c30 [0x2a001d][0x1cb9d],[TX]
master 4 gl owner 0x154b105e0 possible pid 8601 xid 47000-0005-00024CDE bast 0 rseq 1329 mseq 0 history 0x49a5149a
convert opt KJUSERGETVALUE
----------enqueue 0x1537feef8------------------------
lock version : 2128337
Owner node : 4
grant_level : KJUSEREX
req_level : KJUSEREX
bast_level : KJUSERNL
notify_func : (nil)
resp : 0x1341d3c30
procp : 0x1510e0ee0
pid : 12781
proc version : 10700
oprocp : (nil)
opid : 0
group lock owner : 0x154b13128
possible pid : 4540
xid : 39000-0005-00048D1F
dd_time : 0.0 secs
dd_count : 0
timeout : 0.0 secs
On_timer_q? : N
On_dd_q? : N
lock_state : GRANTED
Open Options : KJUSERDEADLOCK
Convert options : KJUSERNOQUEUE KJUSERNODEADLOCKWAIT
History : 0x14951495
Msg_Seq : 0x0
res_seq : 1329
valblk : 0x2c3a504d505f504f4c4943595f444953 ,:PMP_POLICY_DIS
DUMP LOCAL BLOCKER: initiate state dump for DEADLOCK
possible owner[57.4540] on resource TX-002A001D-0001CB9D
*** 2012-10-09 03:40:32.794
Submitting asynchronized dump request [28]
DUMP LOCAL BLOCKER/HOLDER: block level 3 res [0x2f0003][0x1eee9],[TX]
----------resource 0x1355e6868----------------------
resname : [0x2f0003][0x1eee9],[TX]
Local node : 4
dir_node : 4
master_node : 4
hv idx : 64
hv last r.inc : 32
current inc : 32
hv status : 0
hv master : 4
open options : dd
grant_bits : KJUSERNL KJUSEREX
grant mode : KJUSERNL KJUSERCR KJUSERCW KJUSERPR KJUSERPW KJUSEREX
count : 1 0 0 0 0 1
val_state : KJUSERVS_NOVALUE
valblk : 0x5f4f4354532c504de00e0e5101000000 _OCTS,PMQ
access_node : 4
vbreq_state : 0
state : x0
resp : 0x1355e6868
On Scan_q? : N
Total accesses: 13955
Imm. accesses: 11923
Granted_locks : 1
Cvting_locks : 1
value_block: 5f 4f 43 54 53 2c 50 4d e0 0e 0e 51 01 00 00 00
GRANTED_Q :
lp 0x1528de2e0 gl KJUSEREX rp 0x1355e6868 [0x2f0003][0x1eee9],[TX]
master 4 gl owner 0x154b105e0 possible pid 8601 xid 47000-0005-00024CDE bast 0 rseq 1980 mseq 0 history 0x49a51495
open opt KJUSERDEADLOCK
CONVERT_Q:
lp 0x1528de490 gl KJUSERNL rl KJUSERPR rp 0x1355e6868 [0x2f0003][0x1eee9],[TX]
master 4 gl owner 0x154b13128 possible pid 4540 xid 39000-0005-00048D1F bast 0 rseq 1980 mseq 0 history 0x49a5149a
convert opt KJUSERGETVALUE
----------enqueue 0x1528de2e0------------------------
lock version : 2643245
Owner node : 4
grant_level : KJUSEREX
req_level : KJUSEREX
bast_level : KJUSERNL
notify_func : (nil)
resp : 0x1355e6868
procp : 0x1510f9800
pid : 4540
proc version : 21634
oprocp : (nil)
opid : 0
group lock owner : 0x154b105e0
possible pid : 8601
xid : 47000-0005-00024CDE
dd_time : 0.0 secs
dd_count : 0
timeout : 0.0 secs
On_timer_q? : N
On_dd_q? : N
lock_state : GRANTED
Open Options : KJUSERDEADLOCK
Convert options : KJUSERNOQUEUE KJUSERNODEADLOCKWAIT
History : 0x49a51495
Msg_Seq : 0x0
res_seq : 1980
valblk : 0x2c3a504d505f504f4c4943595f444953 ,:PMP_POLICY_DIS
DUMP LOCAL BLOCKER: initiate state dump for DEADLOCK
possible owner[71.8601] on resource TX-002F0003-0001EEE9
*** 2012-10-09 03:40:32.794
Submitting asynchronized dump request [28]
Global blockers dump end:-----------------------------------
Global Wait-For-Graph(WFG) at ddTS[0.108ea] :
BLOCKED 0x15365e060 3 wq 2 cvtops x1 TX 0x2a001d.0x1cb9d [47000-0005-00024CDE] 4
BLOCKER 0x1537feef8 3 wq 1 cvtops x28 TX 0x2a001d.0x1cb9d [39000-0005-00048D1F] 4
BLOCKED 0x1528de490 3 wq 2 cvtops x1 TX 0x2f0003.0x1eee9 [39000-0005-00048D1F] 4
BLOCKER 0x1528de2e0 3 wq 1 cvtops x28 TX 0x2f0003.0x1eee9 [47000-0005-00024CDE] 4Your scenario involves mode 4 (KJUSERPR) and mode 6 (KJUSEREX) TX locks.
Mode 4 (S) TX locks can have a few causes, including ITLs, unique indexes and bitmap indexes.
It could be a very similar scenario to this recent thread where the situation was primary/unique key collisions from inserts on different nodes:
Re: Cause of Deadlock -
Hi, I have 11.1.0.7. RAC Linux database. I can see 'Global Enqueue Services Deadlock detected. More info in file [file_name]' in alert file.
Is there any tool/steps to interpret content of this trace file? This trace file have different format comparing to 10g and it is difficult to understand what caused deadlock.
Any suggestions greatly appreciated.
M.Hi,
SEssion 33 is blocking Session 9.
Object id = 1132910 - Object which is having blocking issue
select object_name from all_objects where object_id =1132910
TX is structured <rbs><slot><wrap>
TX-00060007-00049749 25 *33* X 23 9 X - blocking session
TX-0007000d-00037829 23 *9* X 25 33 X - blocked session
*25* - process *33* - blocker X - holds wait
*23* - process *9* - waiter X- same as above
as it does not have any row - might havig with some constraints issue on column level like unqiue constraints
Check that
HTH
- Pavan Kumar N -
Trace File / EJB / dbms_java.grant_permission
I am trying to deploy a simple Hello World EJB onto Oracle 8.1.7 using Jdeveloper 3.2.
I get the following error when deploying :
Loading EJB Jar file and Comm Stubs Jar file...
error: loadJava has failed to load some classes; Please check trace file!
*** Errors occurred while deploying the EJB to 8i JVM ***
*** Deployment completed ***
My trace file has the following in it :
*** 2001-05-03 17:33:29.531
*** SESSION ID:(14.2397) 2001-05-03 17:33:29.531
Error while creating class oracle/aurora/jndi/sess_iiop/ActivationException
ORA-29545: badly formed class: User has attempted to load a class (oracle.aurora.jndi.sess_iiop.ActivationException) into a restricted package. Permission can be granted using dbms_java.grant_permission(<user>, LoadClassInPackage...
could not find oracle/aurora/jndi/sess_iiop/ActivationException in WILLOW2K
could not find oracle/aurora/jndi/sess_iiop/ActivationException in WILLOW2K
ORA-29534: referenced object WILLOW2K.javax/naming/InitialContext could not be resolved
ORA-29545: badly formed class: at offset 128 of packagessb.ssbClient2.main expecting a class-javax.naming.NamingException but encountered a class-oracle.aurora.jndi.sess_iiop.ActivationException.
ORA-29545: badly formed class: at offset 4 of javax.naming.spi.NamingManager.createObjectFromFactories expecting a class-javax.naming.Context but encountered a class-javax.naming.Context.
at offset 4 of javax.naming.spi.NamingManager.getStateToBind expecting a class-javax.naming.Context but encountered a class-javax.naming.Context.
at offset 38 of javax.naming.spi.NamingManager.getStateToBind expecting a class-javax.naming.Context but encountered a class-javax.naming.Context.
at offset 38 of javax.naming.spi.NamingManager.getStateToBind expecting a class-javax.naming.Name but encountered a class-javax.naming.Name.
at offset 37 of javax.naming.spi.NamingManager.getURLObject expecting a class-javax.naming.Context but encountered a class-javax.naming.Context.
ORA-29534: referenced object WILLOW2K.javax/naming/spi/NamingManager could not be resolved
ORA-29534: referenced object WILLOW2K.javax/naming/spi/NamingManager could not be resolved
Error while resolving class oracle/aurora/jndi/sess_iiop/ActivationException
ORA-04043: object /889d46b7_ActivationException does not exist
I think the error stems from the line :
(oracle.aurora.jndi.sess_iiop.ActivationException) into a restricted package. Permission can be granted using dbms_java.grant_permission(<user>, LoadClassInPackage...
Doe anyone know how I can grant the user permission to the above library. How exactly is it done using Oracle 8.1.7 ?
nulldid you read the install notes (install.htm) or release notes(readme.htm) files for known issues ?
see the release notes for the following :
Problems Deploying Business Components for Java Libraries in Different Schema (1095107)
Attempting to deploy a Business Components for Java library in a different schema from the JDeveloper IDE generates the following error:
Generating Jar File...done
Loading EJB Jar file and Comm Stubs Jar file...
error: loadJava has failed to load some classes; Please check trace file!
*** Errors occurred while deploying the EJB to 8i JVM *** -
Hey everyone,
We've been asked to "stress" and "load" test our application as it is predicted our user base might grow in the near future (company acquisitions/etc)...
Unfortunately, there is concern about the overhead added by APEX. From everything I've read, I do not personally believe APEX adds much to each page view (as compared to our own self-managed data), however I need to PROVE this to our system admins/etc. Simply referencing things on the internet like "APEX doesn't add much overhead" doesn't exactly make the case.
To accomplish my mission, I've done the following:
1) generated a trace file on a test page by appending the following to the end of the URL:
"&p_trace=YES" (without quotes)
2) found the location of trace files using:
select value from v$parameter where name = 'user_dump_dest';
3) found the exact trace file for my apex page view
grep -l "3853406964369" *.trc (where the number in quotes was the session id taken from my apex url)
4) formatted the trace file using tkprof from the linux command line:
tkprof orcl_ora_24115.trc tkprof_output
Now, I'm in the process of examining the file. It is great that it shows everything involved in generating a page! A couple of quick questions though.
A) is it safe to assume that this trace file (found by using my method above in steps 1-4) only contains records associated with my single apex page view? My fear is that just because a file contains my session id, that does not guarantee that other random stuff from other sessions is also in the same file (sorry i'm new to trace files and especially trace files generated by apex).
B) if i view a second page with the trace=YES, will a second file get generated or does it get combined into 1 file? how can i easily tell which file is for which page view?
C) is there an easy way to differentiate what queries would normally be made by oracle (regardless of the UI) versus queries ran by APEX specifically (which would not occur if we were using PHP for a front end)?
Specifically, I see queries (similar to the following) that do not appear to be APEX specific from what I can tell:
-- example 1 --
select i.obj#,i.ts#,i.file#,i.block#,i.intcols,i.type#,i.flags,i.property,
i.pctfree$,i.initrans,i.maxtrans,i.blevel,i.leafcnt,i.distkey,i.lblkkey,
i.dblkkey,i.clufac,i.cols,i.analyzetime,i.samplesize,i.dataobj#,
nvl(i.degree,1),nvl(i.instances,1),i.rowcnt,mod(i.pctthres$,256),
i.indmethod#,i.trunccnt,nvl(c.unicols,0),nvl(c.deferrable#+c.valid#,0),
nvl(i.spare1,i.intcols),i.spare4,i.spare2,i.spare6,decode(i.pctthres$,null,
null,mod(trunc(i.pctthres$/256),256)),ist.cachedblk,ist.cachehit,
ist.logicalread
from
ind$ i, ind_stats$ ist, (select enabled, min(cols) unicols,
min(to_number(bitand(defer,1))) deferrable#,min(to_number(bitand(defer,4)))
valid# from cdef$ where obj#=:1 and enabled > 1 group by enabled) c where
i.obj#=c.enabled(+) and i.obj# = ist.obj#(+) and i.bo#=:1 order by i.obj#
-- example 2 --
select intcol#, toid, version#, intcols, intcol#s, flags, synobj#
from
subcoltype$ where obj#=:1 order by intcol# asc
and I see queries that are definitely APEX related (based on the existence of references to wwv objects):
-- example 3 --
SELECT ID, BRANCH_NAME, BRANCH_ACTION, BRANCH_POINT, BRANCH_TYPE,
BRANCH_CONDITION, BRANCH_CONDITION_TEXT, BRANCH_CONDITION_TYPE,
BRANCH_WHEN_BUTTON_ID, NVL(SAVE_STATE_BEFORE_BRANCH_YN,'N'),
SECURITY_SCHEME
FROM
WWV_FLOW_STEP_BRANCHES WHERE FLOW_ID = :B4 AND FLOW_STEP_ID = :B3 AND
BRANCH_POINT = 'BEFORE_HEADER' AND (REQUIRED_PATCH IS NULL OR
(REQUIRED_PATCH > 0 AND (:B2 IS NULL OR INSTR(:B2 ,
':'||TO_CHAR(REQUIRED_PATCH)||':') = 0) ) OR (REQUIRED_PATCH < 0 AND (:B1
IS NULL OR INSTR(:B1 ,':'||TO_CHAR(0-REQUIRED_PATCH)||':') = 0) ) ) ORDER
BY BRANCH_SEQUENCE, ID
and then of course it's easy for me to identify any queries that are based on our code because I recognize the object names we use.
In the mean-time I'm starting to look into how to interpret trace files (outside of the context of apex).
My biggest concern is that I do not want to "ding" or "tax" APEX for queries that it had nothing to do with and that would be ran by oracle regardless of the UI we use to "view a page".
Thanks!Move older audit files to a different filesystem until you find someone being able to define what files can be deleted.
Regards
Gustavo Restuccia -
Is anyone aware of why we should not delete audit and trace files under the oracle admin directory that are over 30 days old? I don't know that there is anything in place to do this and they are building up. Tuldcorpadb01:/oracle is at 96%. These files aren't that big, but there are a lot of them. See counts below.
oracle:tuldcorpadb01:ecmd> cd admin
oracle:tuldcorpadb01:ecmd>find . -name \*.aud -type f -ctime +30 -ls|wc -l
25149
oracle:tuldcorpadb01:ecmd>find . -name \*.trc -type f -ctime +30 -ls|wc -
2426Move older audit files to a different filesystem until you find someone being able to define what files can be deleted.
Regards
Gustavo Restuccia -
How to configure logs and trace files
Hello people,
We have just implemented ESS-MSS, we have around 25000 people using this service and every 2 days my logs and trace file in server gets full and portal gets down.
Please suggest how to solve this problem,how can i reduce trace and log files,,,,,any configuration or setting is there to configure this...please suggest and explain how can it be done.
BirenHi,
You can control what messages gets logged depending on the severity.
This can be configured using Log Configurator, check this how you can set severity to different locations.
Netweaver Portal Log Configuration & Viewing (Part 1)
Regards,
Praveen Gudapati
Maybe you are looking for
-
Can I use an imac bought in America in Australia without a transformer?
-
R/3 Product Hierarchy in BW data model.
Hi all, We have been told by our implementation partner that the scenario described below is not feasible to design in our BW 3.5 system and if we were to implement this scenario there would be a significant amount of user maintenance to maintain the
-
Leave Deletion requests get auto-approved
Hi, If an approved leave is deleted in calendar view then it does not go for approval to manager. Instead it gets deleted immediately What is the reason for this ? Std behaviour is required that the deleted leave should appear in red color and when m
-
How do i run an .exe from inside java?
Thanks for any help maggie
-
I can't get to even run my "Hello world". When I command "javac JavaRules.java" i get the response "'javac' is not recognized as an intrernal or external command, operable program or batch file. Any one know what my deal is?