Ett möjligt sätt kan vara att öka INIT.ORA parameter för distributed_lock_timeout till ett större värde. Detta skulle sedan ge dig längre tid att observera v$lock bord eftersom låsen skulle hålla längre.
För att uppnå automatisering av detta kan du antingen
-
Kör ett SQL-jobb var 5-10:e sekund som loggar värdena för
v$lockeller frågan som sandos har gett ovan i en tabell och sedan analysera den för att se vilken session som orsakade låsningen. -
Kör ett
STATSPACKeller enAWRRapportera. Sessionerna som låstes bör dyka upp med lång förfluten tid och kan därför identifieras.
v$session har ytterligare 3 kolumner blocking_instance, blocking_session, blocking_session_status som kan läggas till i frågan ovan för att ge en bild av vad som låses.