Jonathan, Thanks for your reply (I didn't know how to map XID from a block dump to v$lock.id1/id2 info) As to distributed transactions, IOTs, bitmap indexes - NO to all. I will definitely check (when I get there again - secure site w/ no remote access) v$session.taddr for 165 (may be the way I join v$session.taddr = v$transaction.addr is incorrect? Mark suggested v$session.addr = v$transaction.sess_addr - is this how it should work?) As far as waits is concerned (v$session_wait) - yes 165 waits on 'SQL*Net message from client'. So how 165 can possibly be blocking 226? Thanks, Boris Dali. --- Jonathan Lewis <jonathan@xxxxxxxxxxxxxxxxxx> wrote: > > This transaction has XID 4.17.45045 (when > translated to decimal) which is the transaction > slot held by session 165, not 226 > ID1 = 4 * 65536 + 17 > ID2 = 45045 > > 0x01 > xid: 0x0004.011.0000aff5 > uba: 0x0080531f.0c49.2a ---- 1 fsc > 0x0000.00000000 > > 165 really is blocking 266. > If you can't see 165 in v$transaction, then > it looks as if something has gone wrong. Is it > possible that 165 is an incoming distributed > transaction ? I know an incoming read-only > transaction takes an undo slot but hides its > v$transaction entry - I haven't checked to > see if an incoming update transaction does > exactly the same. > > Check column TADDR from v$session for > sid 165 to see if it null - if it is, then something > has gone wrong, otherwise the value will > map to ktcxbxba in x$ktcxb which is the > x$ underlying v$transaction, and you may > be able to pick up further information from there. > > > TX mode 4 can be produced by several other > types of activity, and multiple concurrent locks > would be a little rare if it were ITL. > > For example, do you have any bitmap indexes > on that table, or is that table an Index Organized > Table. In the former case, updates to indexed > columns can cause other sessions to wait on a > bitmap section in mode 4; in the latter, a 'row' > lock manifests as mode 4 rather than the mode 6 > you would expect for a heap table. > > > I believe the fact that the session is INACTIVE > simply > means that it is between database calls at the > moment - > you could check what it is waiting on - I'd guess > SQL*Next message from client > or maybe > SQL*Net message from dblink > > Regards > > Jonathan Lewis > http://www.jlcomp.demon.co.uk > > The educated person is not the person > who can answer the questions, but the > person who can question the answers -- T. Schick > Jr > > > Next public appearances: > March 2004 Hotsos Symposium - The Burden of Proof > March 2004 Charlotte NC OUG - CBO Tutorial > April 2004 Iceland > > > One-day tutorials: > http://www.jlcomp.demon.co.uk/tutorial.html > > > Three-day seminar: > see http://www.jlcomp.demon.co.uk/seminar.html > ____UK___February > ____UK___June > > > The Co-operative Oracle Users' FAQ > http://www.jlcomp.demon.co.uk/faq/ind_faq.html > > > ----- Original Message ----- > From: "Boris Dali" <boris_dali@xxxxxxxx> > To: <oracle-l@xxxxxxxxxxxxx> > Sent: Monday, February 09, 2004 3:56 PM > Subject: row level (transactional) locking problem > > > Can somebody explain to me under what circumstances > row_wait_obj is -1, but the rest of row_wait_* > columns > in v$session still point to the real file/block/row? > > SQL> select sid, status, last_call_et, > row_wait_file#, > row_wait_row#, row_wait_obj# > 2 from v$session where row_wait_block# = 38466; > > Last Row Row > Row > Call Wait Wait > Wait > Sid STATUS ET File# Row# > Obj# > ---- -------- -------- ---------- ---------- > ---------- > 165 INACTIVE 20094 3 26 > -1 > 226 ACTIVE 1716 3 26 > 5004 > > > According to the locking information in DD (from > utllockt, v$lock, and catblock stuff > [dba_waiters/blockers etc]) session 165 blocks 226 > (and a few others). For instance: > > Mode Mode > WAIT_SESS HOLD_SESS TYPE Held Request Lock1 > --------- --------- ---- ------ ------- > -------------- > 226 165 Tran Exclus Exclusi 262161 > > ... and the full list of entries pertaining to > 165/226 > in v$lock: > > SQL> select * from v$lock where sid in (165, 226); > (output formatted to fit the screen): > > Sid TY ID1 ID2 LMODE REQUEST CTIME > ------ ------ ----- ----- ------- ---------- > 165 TX 262161 45045 6 0 18576 > 165 TM 5004 0 3 0 31937 > 165 TM 3974 0 3 0 18576 > 165 TM 3831 0 3 0 18576 > 165 TM 3967 0 3 0 18576 > 165 TM 3846 0 3 0 18576 > 165 TM 3790 0 3 0 18576 > 165 TM 3834 0 3 0 18576 > .... > 226 TM 5004 0 3 0 101 > 226 TX 262161 45045 0 6 101 > > > ... but 165 doesn't have any pending transactions > (no > entries in v$transaction). In fact it's being idle > for > the last 5 hours (v$session.status='INACTIVE' and > last_call_et=18575) > > > Here's a block dump of 3/38466: > > buffer tsn: 2 rdba: 0x00c09642 (3/38466) > scn: 0x0000.0b6f62c2 seq: 0x01 flg: 0x00 tail: > 0x62c20601 > frmt: 0x02 chkval: 0x0000 type: 0x06=trans data > .... > Itl Xid Uba Flag > > Lck Scn/Fsc > 0x01 xid: 0x0004.011.0000aff5 uba: > 0x0080531f.0c49.2a ---- 1 fsc 0x0000.00000000 > 0x02 xid: 0x0004.010.0000aff1 uba: > 0x00805320.0c49.08 C--- 0 scn 0x0000.0b6f2e8b > .... > nrow=35 > .... > tl: 229 fb: --H-FL-- lb: 0x1 cc: 46 > .... > > So everything seems to be consistent - there's only > one slot taken in this block (by sid=226 I guess), > the > second slot is no longer active (cleaned up during > delayed block cleanout I presume) and yet session > 226 > is blocked by 165. Am I missing something obvious? > > > Just for completence - I think part of the problem > in > this app is the ITL shortage on table 5004 as there > are quite a few 'TX' entries in v$lock requesting > mode > 4 locks and sitting on the update statements. Not > sure > if this is related to the question above. > > Oracle 8.1.7.4.1 on W2K (sorry I didn't do it) > > Thanks, > Boris Dali. > > ______________________________________________________________________ > > Post your free ad now! http://personals.yahoo.ca > === message truncated === ______________________________________________________________________ Post your free ad now! http://personals.yahoo.ca ---------------------------------------------------------------- Please see the official ORACLE-L FAQ: http://www.orafaq.com ---------------------------------------------------------------- To unsubscribe send email to: oracle-l-request@xxxxxxxxxxxxx put 'unsubscribe' in the subject line. -- Archives are at //www.freelists.org/archives/oracle-l/ FAQ is at //www.freelists.org/help/fom-serve/cache/1.html -----------------------------------------------------------------