DQM Synchronization Batch Process Causing Many Deadlock Issues (Doc ID 739439.1)

Last updated on JULY 12, 2017

Applies to:

Oracle Trading Community - Version: 11.5.10.2
This problem can occur on any platform.
ARHDCH module: DQM Sync Import Child Program

Symptoms

DQM Synchronization was run in Batch mode due to very high volume of data.
DQM Synchronization is set to run every two minutes and runs with 4 workers.

Many times you get updates to same party more than one times and also the way DQM works, it can have more than one records of same party for synchronization.  If more than one worker pick up records for same party, you end up having "Deadlock detected" error raised by one of these workers.

The error is: "ORA-00060: deadlock detected while waiting for resource"

This error is only shown in database alert logs and trace files.

The deadlock error comes ONLY if you are running DQM Synchronization with number of workers (streams) more than 1.  In this case, it is running with number of workers set to 4 as daily transactions per hour are very high in the system.

When DQM Synchronization was run with 4 workers, it would spawn 4 ARHDCH processes for synchronization.  It will divide the number of records to be synchronized into 4 equal parts and each of this separate process (worker) will deal with one part.  So if you have more than one record for a party (which is very common in the way DQM works), and if it goes into different workers, there is always a possibility of deadlock error.

Since one of the records for the party has been correctly processed, the error as such is not
worrying in terms of DQM.

It is although worrying in terms of overall support to the application as you need to go through
alter log for each of these errors and identify what the source is.  If it is due to DQM Synchronization, then you can ignore them.  This means additional strain on you and also a worrying cause as it can sometime mask other important "Deadlock" error in other part of the code.

It would be really useful if the DQM Synchronization code only works on single party record and deals with duplicate party records by either deleting them or setting them side ways..... But it is really important to remove the occurance of these errors in DQM.



Cause

Sign In with your My Oracle Support account

Don't have a My Oracle Support account? Click to get started

My Oracle Support provides customers with access to over a
Million Knowledge Articles and hundreds of Community platforms