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

Home -> Community -> Usenet -> c.d.o.server -> Re: Interesting question about locks !

Re: Interesting question about locks !

From: Jonathan Lewis <jonathan_at_jlcomp.demon.co.uk>
Date: 2000/03/03
Message-ID: <952115764.12339.1.nnrp-12.9e984b29@news.demon.co.uk>#1/1

There is no other realistic solution unless you prebuild your own locking mechanism using user_defined locks.

A row lock exists PURELY as a byte
flag against the row in the block.
The only faintly realistic way you can
find the locker is to try to lock the row so that a session tracks from the bit to the ITL and displays in v$lock.

An alternative is to get the rowid of
the row you want, derive the block
address, then call an external procedure to dump the block to a trace file (or
read it direct from the datafile) and
find the ITL index from the rows flags,
derive the transaction address from the
itl entry and return the session id.
NON-trivial and potentially version
and platform dependent.

--

Jonathan Lewis
Yet another Oracle-related web site:  http://www.jlcomp.demon.co.uk

Didier LENQUETTE wrote in message ...

>Hi Jeremiah !
>
>Thank you for your explanations.
>
>You are not the first with this answer !
>But I will try to find an other solution.
>
>Bye.
>
>Jeremiah Wilton <jeremiah_at_wolfenet.com> a écrit dans le message :
>38BFECF7.F4552A2A_at_wolfenet.com...
>> To do what you want, you must select for update, let a session hang for
>> a second, open a second session in the background, check the blocking
>> locks, then timeout the waiting session from the application level.
>> There is no way to get the blocker without establishing a blocking
>> situation.
>
Received on Fri Mar 03 2000 - 00:00:00 CST

Original text of this message

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