Una forma posible podría ser aumentar el INIT.ORA parámetro para distributed_lock_timeout a un valor mayor. Esto le daría más tiempo para observar el v$lock mesa ya que las cerraduras durarían más.
Para lograr la automatización de esto, puede
-
Ejecute un trabajo SQL cada 5-10 segundos que registre los valores de
v$locko la consulta que sandos ha dado anteriormente en una tabla y luego analícela para ver qué sesión estaba causando el bloqueo. -
Ejecute un
STATSPACKo unAWRReporte. Las sesiones que se bloquearon deberían aparecer con mucho tiempo transcurrido y, por lo tanto, se pueden identificar.
v$session tiene 3 columnas más blocking_instance, blocking_session, blocking_session_status que se puede agregar a la consulta anterior para dar una idea de lo que se bloquea.