![]() Transaction deadlocks occur when two or more transactions are attempting to access an object with incompatible lock modes. Remote resource requests are requests originating from another instance. The LMD process also handles deadlock detection Global Enqueue Service (GES) requests. Use smaller blocks with less data – Since the deadlock contention is at the block-level, consider moving these tables and indexes to a super-small blocksize (create a db2k_cache_size), and using a high PCTFREE to space-out the data over MORE blocks.Add INITRANS – In certain conditions, increasing INITRANS for the target tables and indexes(adding slots to the ITL) can relieve deadlocks.Re-scheduling batch update jobs to low-update times an also help. Tune the application – Single-threading related updates and other application changes can often remove deadlocks.There are several remedies for resolving aborted tasks from deadlocks: See my notes here on resolving the deadlock detected error. To prevent a perpetual wait, Oracle aborts the transaction that caused the deadlock. If your ORA-00060 is caused by competing resources, the perpetual embrace happens when the aborted task (Task B) attempts to lock a row which is being held by another task (Task A), which, in-turn, is waiting for task B to release a lock. Retry if necessary.ĭeadlocks in Oracle result in this error: ORA-00060: deadlock detected while waiting for resourceĬause: Transactions deadlocked one another while waiting for resources.Īction: Look at the trace file to see the transactions and resources involved. This deadlock condition is an age-old issue known as the “perpetual embrace”! The doc note that a retry may work: Whenever you have competing DML running against the same data, you run the risk of a deadlock.
0 Comments
Leave a Reply. |
AuthorWrite something about yourself. No need to be fancy, just an overview. ArchivesCategories |