Re: ORA-00054: resource busy and acquire with NOWAIT specified

  • From: Tanel Poder <tanel@xxxxxxxxxx>
  • To: hkchital@xxxxxxxxxxxxxx
  • Date: Sat, 31 Oct 2009 15:33:34 +0800

Hemant,

The transaction is started only when you actually change a row! By
transaction started I mean that a transaction slot is allocated from undo
segment header block and a transaction state object is created (and TX lock
is taken).

If no rows are changed by the DML statement, all you have is a TM lock (DML
lock) on the object, but no transaction.

Tanel Poder
http://blog.tanelpoder.com

On Thu, Oct 29, 2009 at 12:12 AM, Hemant K Chitale
<hkchital@xxxxxxxxxxxxxx>wrote:

>
> The transaction is "defined" when the DML starts.  It doesn't matter if it
> ends up deleting 1million rows  or 0rows.  It is still a transaction holding
> a Transaction Lock.  This prevents DDL on the table.
>
> Hemant K Chitale
>
> At 05:09 AM Wednesday, you wrote:
>
>> Hello gurus,
>>
>>
>> When session1 deleted 0 records, it should not be placing any locks on
>> the table correct? I do not understand why I got the error. Am I
>> missing some basic concept?
>>
>> When I did a rollback on the session1 then session2 was able to
>> truncate the table.
>>
>> Thanks
>> Deen
>>
>
>
>
>
>
>
>
>
> --
> //www.freelists.org/webpage/oracle-l
>
>
>


-- 
Tanel Poder
http://blog.tanelpoder.com

Other related posts: