Je bent op zoek naar sloten met een naam (voorzichtig, gevaarlijk spul, kom niet aan het experimenteren met sloten op productieservers :D).
Kijk eens naar:
A1 :Kies een unieke string om te vergrendelen en gebruik GET_LOCK erop (zeg, GET_LOCK('conversation_' || [id]); als het 1 teruggeeft het slot is van jou. Doe wat je wilt en bel later RELEASE_LOCK (rekening houdend met alle mogelijke scenario's, inclusief fouten).
A2 :De tweede parameter van GET_LOCK is een time-out in seconden . Als de bewerking een time-out heeft GET_LOCK retourneert 0 .
Uit de officiële documentatie
Vetgedrukt zijn van mij:
- Betekent dat u slechts één slot per verbinding kunt vasthouden (geen probleem voor uw gebruikerscase)
- Betekent dat vergrendelingen worden vrijgegeven zodra u sluit de verbinding
- Betekent dat twee verschillende verbindingen (zelfs van dezelfde pool) mogelijk niet in één keer hetzelfde uiterlijk krijgen.