Musimy upewnić się, że tylko jedna kopia konkretnej procedury działa w Oracle. Jeśli jest już uruchomiony, a użytkownik próbuje otworzyć inny, oznacza to błąd.
Jaka jest najlepsza metoda tego?
oracle
oracle-11g-r2
locking
plsql
rfusca
źródło
źródło
Kiedy moi klienci mają żądanie, które ma unikalną logikę biznesową taką jak ta, staram się odwrócić pytanie i zapytać, dlaczego jest to potrzebne.
Najlepszym sposobem, aby upewnić się, że tylko jedna kopia jest uruchomiona, jest w ogóle nie pozwolić użytkownikom na wykonanie procedury. Jeśli ta procedura jest tak wyjątkowa, to jej użycie powinno być ograniczone do dba / deweloperów.
Innym sposobem jest uruchomienie tej procedury tylko jako zadanie. Dodaj zaznaczenie w procedurze, aby sprawdzić, czy uruchomione są jakiekolwiek zadania wywołujące to. Jeśli tak, zatrzymaj dalsze przetwarzanie i zapisz zdarzenie.
źródło