Ostatnio zmagałem się z podobnym problemem. Okazało się, że w bazie brakowało indeksów na kluczach obcych. To spowodowało, że Oracle zablokowało znacznie więcej rekordów niż było to wymagane, co szybko doprowadziło do zakleszczenia podczas wysokiej współbieżności.
Oto doskonały artykuł z wieloma szczegółami, sugestiami i szczegółami, jak naprawić impas:http://www.oratechinfo.co.uk/deadlocks.html#unindex_fk