Problem with enqueue locks 
Author Message
 Problem with enqueue locks

<Oracle 7.2.3.0, AIX 4.1.5>
Hi, I've been getting the "waited too long for row cache enqueue lock!"
message in Oracle's alert.log, and thereafter Oracle is hung; can't
connect using sqlplus...

I've a set of Pro*C programs doing simple select/insert/update of
thousands of rows periodically (every 10 mins or so), and the message
typically appears in a few days to weeks. I've to restart Oracle and
re-run the programs to fix the problem. I've set dml_locks and
enqueue_resource to 1000 and increase data buffer to 30MB, but the
problem still persists.

Oracle's Bug? Any ideas? I've noticed the enqueue_locks increases when
data buffer (not when enqueue_resources) increaes from v$sgastat, but do
I have to increase the data buffer (already more than 30MB) further to
resolve the problem. Any way to calculate the enqueue_locks required?



Wed, 19 Apr 2000 03:00:00 GMT
 Problem with enqueue locks

Hi,

The waited too long for a row cache enqueue lock message is refering
to a different set of enqueues than those visible to you in v$sgastat
as enqueue locks. The latter are set by the _enqueue_locks parameter
and defaults to a function of processes and db_block_buffers. However,
you do not have a problem here.

The enqueue locks specified in that message are part of the dictionary
cache itself, which is dynamically sized, and are not separately
visible to you via any of the v$tables. Such errors are almost
certainly due to a deadlock for internal resources, and thus reflect a
bug in the Oracle code. There have been a lot of bugs that can cause
this symptom, so you have to get Oracle Support to help you work out
what bug you've got, or whether it is a new one.

Just for completeness, the _enqueue_locks setting does need to include
an allowance for dictionary cache instance locks when the database is
mounted in parallel mode. This is different, but not unrelated issue.

Hope this helps,
Steve Adams
----------



Quote:
><Oracle 7.2.3.0, AIX 4.1.5>
>Hi, I've been getting the "waited too long for row cache enqueue lock!"
>message in Oracle's alert.log, and thereafter Oracle is hung; can't
>connect using sqlplus...

>I've a set of Pro*C programs doing simple select/insert/update of
>thousands of rows periodically (every 10 mins or so), and the message
>typically appears in a few days to weeks. I've to restart Oracle and
>re-run the programs to fix the problem. I've set dml_locks and
>enqueue_resource to 1000 and increase data buffer to 30MB, but the
>problem still persists.

>Oracle's Bug? Any ideas? I've noticed the enqueue_locks increases when
>data buffer (not when enqueue_resources) increaes from v$sgastat, but do
>I have to increase the data buffer (already more than 30MB) further to
>resolve the problem. Any way to calculate the enqueue_locks required?



Fri, 21 Apr 2000 03:00:00 GMT
 
 [ 2 post ] 

 Relevant Pages 

1. library cache lock | transaction enqueue lock

2. SMON Having lock on temporary segment (enqueue lock)

3. DBMS_AQ.Enqueue gives incorrect enqueue time

4. Waited Too Long For Row Cache Enqueue Lock

5. transaction enqueue lock

6. waited too long for row cache enqueue lock

7. ST-enqueue problem

8. Strange enqueue problem (even after it is killed!)

9. Advanced Queuing: remote enqueuing/dequeuing

10. enqueue timeouts ?

11. enqueue waits

12. how to get a msgid from enqueue in Visual Basic (using oo4o)


 
Powered by phpBB® Forum Software