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$lock
eller 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
STATSPACK
eller enAWR
Rapportera. 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.