From oracle-l-bounce@freelists.org  Sat Jan  1 04:18:20 2005
Return-Path: <oracle-l-bounce@freelists.org>
Received: from air189.startdedicated.com (root@localhost)
 by orafaq.com (8.11.6/8.11.6) with ESMTP id j01AIG400673
 for <oracle-l@orafaq.com>; Sat, 1 Jan 2005 04:18:16 -0600
X-ClientAddr: 206.53.239.180
Received: from turing.freelists.org (freelists-180.iquest.net [206.53.239.180])
 by air189.startdedicated.com (8.11.6/8.11.6) with ESMTP id j01AIGn00668
 for <oracle-l@orafaq.com>; Sat, 1 Jan 2005 04:18:16 -0600
Received: from localhost (localhost [127.0.0.1])
 by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id 402E572C0D5;
 Sat,  1 Jan 2005 05:24:48 -0500 (EST)
Received: from turing.freelists.org ([127.0.0.1])
 by localhost (turing [127.0.0.1]) (amavisd-new, port 10024) with ESMTP
 id 20749-05; Sat,  1 Jan 2005 05:24:48 -0500 (EST)
Received: from turing (localhost [127.0.0.1])
 by turing.freelists.org (Avenir Technologies Mail Multiplex) with ESMTP id B13DC72C308;
 Sat,  1 Jan 2005 05:23:14 -0500 (EST)
Subject: Re: How to avoid or handle the ORA-0054s
From: "Mark J. Bobak" <mark@bobak.net>
To: hkchital@singnet.com.sg
Cc: Oracle-L Mailing List <oracle-l@freelists.org>
In-Reply-To: <6.2.0.14.0.20041231221516.04dd6b28@pop.singnet.com.sg>
References: <6.2.0.14.0.20041231221516.04dd6b28@pop.singnet.com.sg>
Content-type: text/plain
Organization: MJB Consulting
Message-Id: <1104574794.10406.81.camel@bobak.net>
Mime-Version: 1.0
Date: Sat, 01 Jan 2005 05:19:54 -0500
Content-Transfer-Encoding: 8bit
X-archive-position: 14286
X-ecartis-version: Ecartis v1.0.0
Sender: oracle-l-bounce@freelists.org
Errors-To: oracle-l-bounce@freelists.org
X-original-sender: mark@bobak.net
Precedence: normal
Reply-To: mark@bobak.net
X-list: oracle-l
X-Virus-Scanned: by amavisd-new at freelists.org

Hemant,
Actually, in 10g, there is "ddl_wait_for_locks", which defaults to
FALSE.  I've not yet experimented with it, so, I won't comment, other
than to speculate that it will do what you want.

It really sounds like an upgrade to 9.2.0.5 to avoid the rebuilds in the
first place is the right answer.  A while back, someone had a similar
requirement, and I suggested use of DBMS_LOCK.  Use it to create a UL
enqueue.  Write your code so that any code that does DML against the
table that the index is on takes a share mode lock.  Lots of concurrent
DML would be able to take the share mode lock.  When it's time to run
the rebuild script, have it take an exclusive lock.  If there is any DML
running against the table, the request for exclusive lock will wait,
queued behind the share locks.  When the DML completes, the exclusive
lock will be granted, and you can do the rebuilds without fear of
ORA-0054.  When the rebuilds complete, release the exclusive lock, and
any DML which queued behind the exclusive lock will run.  

But, I think it's a lot easier to upgrade to 9.2.0.5 or 6.  And, if you
run across any kind of similar requirement in 10g, "ddl_wait_for_locks"
is probably worth a look.

Hope that helps,

-Mark

On Fri, 2004-12-31 at 22:05, Hemant K Chitale wrote:

> I have a need to regularly Recreate certain Indexes .  {see note below on 
> WHY !}
> This is scripted.  However, the script sometimes errors on the DROP with 
> ORA-0054
> and, of course, the CREATE doesn't go through.
> We are trying to put a loop to check the spooled output of the script and rerun
> it if the DROP fails.
> 
> However, I was wondering if anyone has implemented a technique to handle 
> ORA-0054s
> and automated the retry of the DDL.
> 
> Why I can't use a REBUILD is because it is a corrupt index.
> {and surely, the REBUILD does use a WAIT when it switches the indexes.
> Why doesn't Oracle allow us to write a DROP ... WAIT ?}
> 
> 
> 
> NOTE : Why the Recreate Indexes :
> These are 6 BitMap Join Indexes.  A bug in 9.2.0.4 causes occasional ORA-600s
> when querying the table. The solution is to Recreate the Indexes.  I had 
> emailed
> this list on 03-Dec on ORA-600 [12700] errors with these BMJIs.
> 
> Although 9.2.0.5 is indicated to have a fix, I see some references to other
> BMJI issues in 9.2.0.5 and we haven't yet gone to 9.2.0.5 for this 
> particular database.
> 
> Hemant K Chitale
> http://web.singnet.com.sg/~hkchital
> 
> 
> 
>                
> --
> http://www.freelists.org/webpage/oracle-l

--
Mark J. Bobak
mark@bobak.net
"Science is the belief in the ignorance of experts."  --Richard P.
Feynman


--
http://www.freelists.org/webpage/oracle-l

