T.R | Title | User | Personal Name | Date | Lines |
---|
5069.1 | | HOTRDB::PMEAD | Paul, [email protected], 719-577-8032 | Tue Feb 25 1997 09:14 | 3 |
| What exact resource does Rdb say the deadlock occurs on?
Deadlocks are often a normal part of database activity.
|
5069.2 | How can I find exact resource ? | ORAREP::DEKVC::JONGHOLEE | | Tue Feb 25 1997 19:52 | 23 |
| Hi,
Thanks for your help.
My customer say that between READ_ONLY and READ_WRITE transaction,
the DEADLOCK occured.
We cannot understand this situation.
Due to this deadlock, the processing is delayed more than
10 seconds(system parameter deadlock wait time is 10 seconds).
The application can't know the DEADLOCK from SQLCODE.
This DEADLOCK occurs internally as Manual(Guide to Database Performance
and tuning v6.0 3.8.1.5) described.
>>>What exact resource does Rdb say the deadlock occurs on?
We can't know the 'exact resource', because the DEADLOCK occurs internally.
Please let me know how can I find the 'Exact resource'.
>>>Deadlocks are often a normal part of database activity.
My customer want to know why this DEADLOCK(Between R/O and R/W) occurs.
Though, lock mechanism is complex, please inform me the reason.
Thanks.
Jong-ho Lee.
|
5069.3 | not enough informationi | NOVA::BRYDEN | | Tue Feb 25 1997 22:16 | 15 |
| It is difficult to pick what has been happening. The information
on that screen says that the R/W process has had 23 deadlocks
since attaching the most recent one is physical area 2 page 68.
The R/O process has had 20 deadlocks since it attached, the most
recent occurred while obtaining page 680 physical area 3. If you
dump those pages it might help explain what is going on. eg maybe
there has been an insert done which has caused a rebalance of the
index tree and the two processes are locking each other out.
Tell us what is on the pages in the display and also get the
customer to do an RMU/SHOW LOCKS/MODE=BLOCKING when you see these
messages, maybe it is some other process that is causing the
deadlock..
Dave
|
5069.4 | | hotrdb.us.oracle.com::PMEAD | Paul, [email protected], 719-577-8032 | Wed Feb 26 1997 09:19 | 17 |
| Please refer to the SQL documentation to find out how to report more
error information than just the SQLCODE.
If the customer doesn't like the long 10 second pause then they might
want to consider reducing DEADLOCKWAIT to a smaller number. Of course
that can mean that there might be a slight increase in system overhead,
but in general it is not noticeable.
There are many strategies that can be used to reduce the likelihood of
deadlocks. For example, if one particular table is prone to deadlocks,
then you might want to consider having the application use exclusive
access to that table. That, however, reduces concurrency to the table.
You might want to make sure that each transaction accesses tables using
the same order (that is, always update table A prior to table B).
There are other ways to prevent deadlocks too. You need to determine
what is causing your deadlocks so that you can understand why they are
occurring. Then you can work on strategies to prevent them.
|
5069.5 | What is on those pages? | bouvs.us.oracle.com::OAKEY | I'll take Clueless for $500, Alex | Wed Feb 26 1997 12:34 | 26 |
| >> <<< Note 5069.2 by ORAREP::DEKVC::JONGHOLEE >>>
>> -< How can I find exact resource ? >-
Jong-ho,
>> My customer say that between READ_ONLY and READ_WRITE transaction,
>> the DEADLOCK occured.
I see nothing in .0 that indicates that the deadlocks were between the
identified READ ONLY and READ WRITE transactions. I see evidence that one
user was seeing many deadlocks on one specific page while a different user
was seeing deadlocks on a different page. I also get the impression
(although I'm not sure), that the only place you are seeing the deadlocks
is in the deadlock history screen, is that correct?
Rdb can encounter deadlocks on pages which will not be signalled back to
the application program. When the deadlock is signalled, Rdb handles the
condition internally.
What is on the two pages that keep encountering deadlocks?
You may not be able to avoid page deadlocks completely. If the 10 second
wait is a problem, reduce DEADLOCK_WAIT as Paul suggested. However, be
aware that changing DEADLOCK_WAIT can impact the entire system and not just
the database in question.
|