Je luttais récemment avec un problème similaire. Il s'est avéré que la base de données manquait d'index sur les clés étrangères. Cela a amené Oracle à verrouiller beaucoup plus d'enregistrements que nécessaire, ce qui a rapidement conduit à un blocage en cas de forte concurrence.
Voici un excellent article avec beaucoup de bons détails, suggestions et détails sur la façon de résoudre un blocage :http://www.oratechinfo.co.uk/deadlocks.html#unindex_fk