Nedávno jsem se potýkal s podobným problémem. Ukázalo se, že v databázi chybí indexy cizích klíčů. To způsobilo, že Oracle uzamkl mnohem více záznamů, než bylo požadováno, což rychle vedlo k uváznutí během vysoké souběžnosti.
Zde je vynikající článek se spoustou dobrých podrobností, návrhů a podrobností o tom, jak opravit zablokování:http://www.oratechinfo.co.uk/deadlocks.html#unindex_fk