Oracle FAQ Your Portal to the Oracle Knowledge Grid
HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US
 

Home -> Community -> Mailing Lists -> Oracle-L -> Re: Enqueue TX level 4 wait -- blocks dump -- Real Time case

Re: Enqueue TX level 4 wait -- blocks dump -- Real Time case

From: Diego Cutrone <diegocutrone_at_yahoo.com.ar>
Date: Mon, 3 May 2004 17:38:34 -0700
Message-ID: <058a01c43170$23418090$a504fea9@DC>


Thank you Jonathan.

I changed the approach.
I started looking for this wait in realtime and I found it. As a matter of fact it's still there andit seems it will be here for a while.

V$SESSION_WAIT SQL> /       SID SEQ# EVENT
--------- --------- --------------------------------------------------------


P1TEXT                                                                  P1
P1RAW
---------------------------------------------------------------- --------- -

P2TEXT                                                                  P2
P2RAW
---------------------------------------------------------------- --------- -

P3TEXT                                                                  P3
P3RAW
---------------------------------------------------------------- --------- -


WAIT_TIME SECONDS_IN_WAIT STATE
--------- --------------- -------------------
      112     49732 enqueue
name|mode                                                        1.415E+09
0000000054580006
id1                                                                 196661
0000000000030035
id2                                                                 514403
000000000007D963
        0            8614 WAITING

      121     49454 enqueue
name|mode                                                        1.415E+09
0000000054580004
id1                                                                1114137
0000000000110019
id2                                                                  17942
0000000000004616
        0            6072 WAITING


V$LOCK   1 select sid, type, id1, id2, lmode, request,ctime, block   2 from v$lock
  3 where type in ('TX', 'TM')
  4* order by 1
SQL> /       SID TY ID1 ID2 LMODE REQUEST CTIME BLOCK
--------- -- --------- --------- --------- --------- --------- ---------

      102 TX 196661 514403 6 0 440693 1 <<<<<< Blocking 112

      102 TM     45172         0         2         0    440542         0
      102 TM     45137         0         2         0    440693         0
      112 TX   1114137     17942         6         0    439874         1
<<<<<<<< Blocking 121
      112 TM     45137         0         3         0    439874         0
      112 TM     45172         0         3         0    439874         0
      112 TX    196661    514403         0         6    439874         0
      121 TX   1179714      7865         6         0    438439         0
      121 TM     45172         0         3         0    438439         0
      121 TX   1114137     17942         0         4    438439         0


V$SQL Don't know what's session 102 doing

      SID   SERIAL# OSUSER                             PIECE SQL_TEXT

--------- --------- ------------------------------ --------- ---------------
------------------------
121 11 erpapp2 0 INSERT INTO PO_REQUISITION_LINES ( REQUISITION_LINE_ID,REQUISI 121 11 erpapp2 1 ON_HEADER_ID,LINE_NUM,LINE_TYPE_ID,CATEGORY_ID,ITEM_DESCRIPTIO 121 11 erpapp2 2 UNIT_MEAS_LOOKUP_CODE,UNIT_PRICE,QUANTITY,DELIVER_TO_LOCATION_ 121 11 erpapp2 3 ,TO_PERSON_ID,LAST_UPDATE_DATE,LAST_UPDATED_BY,SOURCE_TYPE_COD 121 11 erpapp2 4 LAST_UPDATE_LOGIN,CREATION_DATE,CREATED_BY,ITEM_ID,ITEM_REVISI 121 11 erpapp2 5 ,QUANTITY_DELIVERED,SUGGESTED_BUYER_ID,ENCUMBERED_FLAG,RFQ_REQ 121 11 erpapp2 6 RED_FLAG,NEED_BY_DATE,LINE_LOCATION_ID,MODIFIED_BY_AGENT_FLAG, 121 11 erpapp2 7 RENT_REQ_LINE_ID,JUSTIFICATION,NOTE_TO_AGENT,NOTE_TO_RECEIVER, 121 11 erpapp2 8 RCHASING_AGENT_ID,DOCUMENT_TYPE_CODE,BLANKET_PO_HEADER_ID,BLAN 121 11 erpapp2 9 T_PO_LINE_NUM,CURRENCY_CODE,RATE_TYPE,RATE_DATE,RATE,CURRENCY_ 121 11 erpapp2 10 IT_PRICE,SUGGESTED_VENDOR_NAME,SUGGESTED_VENDOR_LOCATION,SUGGE 121 11 erpapp2 11 ED_VENDOR_CONTACT,SUGGESTED_VENDOR_PHONE,SUGGESTED_VENDOR_PROD 121 11 erpapp2 12 T_CODE,UN_NUMBER_ID,HAZARD_CLASS_ID,MUST_USE_SUGG_VENDOR_FLAG, 121 11 erpapp2 13 FERENCE_NUM,ON_RFQ_FLAG,URGENT_FLAG,CANCEL_FLAG,SOURCE_ORGANIZ 121 11 erpapp2 14 ION_ID,SOURCE_SUBINVENTORY,DESTINATION_TYPE_CODE,DESTINATION_O 121 11 erpapp2 15 ANIZATION_ID,DESTINATION_SUBINVENTORY,QUANTITY_CANCELLED,CANCE 121 11 erpapp2 16 DATE,CANCEL_REASON,CLOSED_CODE,AGENT_RETURN_NOTE,CHANGED_AFTER 121 11 erpapp2 17 ESEARCH_FLAG,VENDOR_ID,VENDOR_SITE_ID,VENDOR_CONTACT_ID,RESEAR 121 11 erpapp2 18 _AGENT_ID,ON_LINE_FLAG,WIP_ENTITY_ID,WIP_LINE_ID,WIP_REPETITIV 121 11 erpapp2 19 SCHEDULE_ID,WIP_OPERATION_SEQ_NUM,WIP_RESOURCE_SEQ_NUM,ATTRIBU 121 11 erpapp2 20
_CATEGORY,DESTINATION_CONTEXT,INVENTORY_SOURCE_CONTEXT,VENDOR_
      SID   SERIAL# OSUSER                             PIECE SQL_TEXT

--------- --------- ------------------------------ --------- ---------------
------------------------
121 11 erpapp2 21 URCE_CONTEXT,ATTRIBUTE1,ATTRIBUTE2,ATTRIBUTE3,ATTRIBUTE4,ATTRI 121 11 erpapp2 22 TE5,ATTRIBUTE6,ATTRIBUTE7,ATTRIBUTE8,ATTRIBUTE9,ATTRIBUTE10,AT 121 11 erpapp2 23 IBUTE11,ATTRIBUTE12,ATTRIBUTE13,ATTRIBUTE14,ATTRIBUTE15,BOM_RE 121 11 erpapp2 24 URCE_ID,USSGL_TRANSACTION_CODE,GOVERNMENT_CONTEXT,CLOSED_REASO 121 11 erpapp2 25 CLOSED_DATE,TRANSACTION_REASON_CODE,QUANTITY_RECEIVED,TAX_CODE 121 11 erpapp2 26 D,TAX_USER_OVERRIDE_FLAG,OKE_CONTRACT_HEADER_ID,OKE_CONTRACT_V 121 11 erpapp2 27 SION_ID,SECONDARY_UNIT_OF_MEASURE,SECONDARY_QUANTITY,PREFERRED 121 11 erpapp2 28 RADE ) VALUES ( :b1,:b2,:b3,:b4,:b5,:b6,:b7,:b8,:b9,:b10,:b11 121 11 erpapp2 29 b12,:b13,:b14,:b15,:b16,:b17,:b18,:b19,:b20,:b21,:b22,NVL(:b23 121 11 erpapp2 30 N'),:b24,:b25,:b26,:b27,:b28,:b29,:b30,:b31,:b32,:b33,:b34,:b3 121 11 erpapp2 31 :b36,:b37,:b38,:b39,:b40,:b41,:b42,:b43,:b44,:b45,:b46,:b47,:b 121 11 erpapp2 32 ,:b49,:b50,:b51,:b52,:b53,:b54,:b55,:b56,:b57,:b58,:b59,:b60,: 121 11 erpapp2 33 1,:b62,:b63,:b64,:b65,:b66,:b67,:b68,:b69,:b70,:b71,:b72,:b73, 121 11 erpapp2 34 74,:b75,:b76,:b77,:b78,:b79,:b80,:b81,:b82,:b83,:b84,:b85,:b86 121 11 erpapp2 35 b87,:b88,:b89,:b90,:b91,:b92,:b93,:b94,:b95,:b96,:b97,:b98,:b9 121 11 erpapp2 36
:b100,:b101,:b102,:b103,:b104,:b105 )

37 rows selected.

      SID   SERIAL# OSUSER                             PIECE SQL_TEXT

--------- --------- ------------------------------ --------- ---------------
------------------------
112 179 erpapp2 0 UPDATE PO_REQUISITION_HEADERS SET TRANSFERRED_TO_OE_FLAG=:b1 W 112 179 erpapp2 1 RE
REQUISITION_HEADER_ID = :b2

PO_REQUISITION_HEADERS is a view for PO_REQUISITION_HEADERS_ALL. Object 45137
And PO_REQUISITION_LINES is a view for PO_REQUISITION_LINES_ALL. Object 45172.

As far as I can see here,

Session 121 is executing an INSERT into PO_REQUISITION_LINES_ALL. And it's taking:

TM - 3 on 45172 --
TX - 6 on 1114137
and it is also requesting a TX 4.

Session 112 is executing an UPDATE on PO_REQUISITION_HEADERS_ALL. Object 45137
And has:

TM- 3 on 45137
TM- 3 on 45172
<<<<<<<<<<Do not know why this is here
TX -6 on 1114137
and requires a TX - 6 on 196661

And finally session 102 is holding.

TM - 2 on 45172
TM - 2 on 45137
TX - 6 on 196661

So session 121 waits for 112, who is also waiting for 102. All on TX enqueues.

There isn't any FK nor PK on these tables.

Do you know where can I go from here?

I don't remember what was the formula to derivate the RBS number and slot in the transaction table from p1 and p2 TX enqueue........can you tell me?

(I am also going to take a processtate dump on 102 to see if I can see what's that session doing.
I also thought on taking a enqueues dump but I'm not sure if this will be of any help.)

Thank you very much.
Regards,
Diego.

>
> Note in-line
>
> Regards
>
> Jonathan Lewis
> http://www.jlcomp.demon.co.uk
>
> The Co-operative Oracle Users' FAQ
> http://www.jlcomp.demon.co.uk/faq/ind_faq.html
>
> Optimising Oracle Seminar
> http://www.jlcomp.demon.co.uk/seminar.html
>
> June 2004   UK  Manchester
> July 2004   Iceland
> July 2004   USA California
> Aug  2004   USA North Carolina
> Sept 2004   UK  Manchester
> Sept 2004   USA NYC
> Oct  2004   USA Boston
>
>
> ----- Original Message ----- 
> From: "Diego Cutrone" <diegocutrone_at_yahoo.com.ar>
> To: <oracle-l_at_freelists.org>
> Sent: Monday, May 03, 2004 10:56 PM
> Subject: Re: Enqueue TX level 4 wait -- blocks dump
> Let me tell you what I tried to do.
> For indexes for example, in many blocks all the ITLs had been used,
> wouldn't that mean that at some point in time there were 11 simultaneous
> transactions active? (counting also the recursive ones)
>
>
> [jl] No. Although indexes can be a little funny in their use of ITL
> [jl] entries, the basic principle is that a new transaction will use
> [jl] the itl entry that has the oldes commit scn in it.  So this means
> [jl] that you will tend to see all 11 ITLs used.
>
> Index example.
> --------------------------------------------------------------------------
--
> --------------------------------
>
> Block header dump:  0x55802364
>  Object id on Block? Y
>  seg/obj: 0xb456  csc: 0x00.d86ff6c  itc: 11  flg: -  typ: 2 - INDEX
>      fsl: 0  fnx: 0x0 ver: 0x01
>
>  Itl           Xid                  Uba         Flag  Lck        Scn/Fsc
> 0x01   xid:  0x0002.012.00019480    uba: 0x10c0170e.240b.02  C---    0
scn
> 0x00
> 00.06a5a457
> 0x02   xid:  0x0006.00d.000335f6    uba: 0x10c06d67.464b.0e  --U-    1
fsc
> 0x00
> 00.0d96cc25
> 0x03   xid:  0x0001.031.00032a0e    uba: 0x10c00b0f.456c.0a  --U-    1
fsc
> 0x00
> 00.0d96cc29
> 0x04   xid:  0x0003.041.00033018    uba: 0x10c03b0c.44db.0c  --U-    1
fsc
> 0x00
> 00.0d96cc3b
> 0x05   xid:  0x0003.002.00033015    uba: 0x10c03b0f.44db.19  --U-    1
fsc
> 0x00
> 00.0d96cde5
> 0x06   xid:  0x0003.039.00032c31    uba: 0x10c0cd44.447e.06  --U-   10
fsc
> 0x00
> 00.0d86ff6d
> 0x07   xid:  0x0003.021.00033019    uba: 0x10c03b0b.44db.0e  --U-    1
fsc
> 0x00
> 00.0d96cc21
> 0x08   xid:  0x0007.026.000330af    uba: 0x10c07ea9.43bd.2e  --U-    1
fsc
> 0x00
> 00.0d8ed98e
> 0x09   xid:  0x0002.035.00031143    uba: 0x59401d01.4483.1b  --U-    1
fsc
> 0x00
> 00.0d8ed992
> 0x0a   xid:  0x0006.010.000335f7    uba: 0x10c06d66.464b.11  --U-    1
fsc
> 0x00
> 00.0d96cc19
> 0x0b   xid:  0x0001.00d.00032a27    uba: 0x10c00b0e.456c.0d  --U-    1
fsc
> 0x00
> 00.0d96cc1d
>
> Leaf block dump
> ===============
> header address 9223372041150438708=0x80000001000a9d34
> kdxcolev 0
> kdxcolok 0
> kdxcoopc 0x80: opcode=0: iot flags=--- is converted=Y
> kdxconco 3
> kdxcosdc 1
> kdxconro 514
> kdxcofbo 1064=0x428
> kdxcofeo 1118=0x45e
> kdxcoavs 54
> kdxlespl 0
> kdxlende 0
> kdxlenxt 1434461029=0x55802365
> kdxleprv 1434456775=0x558012c7
> kdxledsz 0
> kdxlebksz 7800
>
> --------------------------------------------------------------------------
--
> --------------------------------
> There are some index blocks which have all the ITL slots used and some of
> them that don't. They have only 2 slots used.
> For the table, all ITLs have been used for almost all the table's blocks.
>
> [jl] There are some oddities with indexes and ITLs. It is possible
> [jl] that the blocks with only two slots used are branch blocks.
> [jl] There is also the oddity that when the first block created for the
> [jl] index (which is both a leaf and branch) splits, both the leaf blocks
> [jl] inherit the ITL count from the parent.  Since the first block created
> [jl] is a branch block, it starts with only 2 ITL slots - whatever you
> [jl] specify for initrans.
>
> By checking the ITC value I was trying to find an ITC higher than 11, if I
> was lucky and found something like that,
> this would have meant that at some point in time there were more than 11
> transactions going on and that an additional
> ITL slot was needed and was allocated (as maxtrans and pctfree allowed
it).
> am I correct?
>
> [jl] Yes - but if itc was greater than 11, you would see more than 11
> [jl] slots in the ITL - slots do not get reclaimed.
>
> I really appreciate your comments.
> Thank you.
> Regards,
> Diego.
>
>
>
> ----------------------------------------------------------------
> Please see the official ORACLE-L FAQ: http://www.orafaq.com
> ----------------------------------------------------------------
> To unsubscribe send email to:  oracle-l-request_at_freelists.org
> put 'unsubscribe' in the subject line.
> --
> Archives are at http://www.freelists.org/archives/oracle-l/
> FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html
> -----------------------------------------------------------------
>



----------------------------------------------------------------
Please see the official ORACLE-L FAQ: http://www.orafaq.com
----------------------------------------------------------------
To unsubscribe send email to: oracle-l-request_at_freelists.org put 'unsubscribe' in the subject line. -- Archives are at http://www.freelists.org/archives/oracle-l/ FAQ is at http://www.freelists.org/help/fom-serve/cache/1.html
-----------------------------------------------------------------
Received on Mon May 03 2004 - 15:34:03 CDT

Original text of this message

HOME | ASK QUESTION | ADD INFO | SEARCH | E-MAIL US