Допустим, у меня есть процедура
с именем myproc
. Это сложный процесс, и я не могу допустить, чтобы два экземпляра выполняли его одновременно.
На самом деле я делаю это с помощью dbms_application_info.set_module
:
procedure start_process is
begin
dbms_application_info.set_module('myproc', 'running');
end;
и проверяю перед запуском процесса:
select 'S'
from v$session v
where v.module = 'myproc'
and v.action = 'running';
Есть ли лучший способ проверить это на уровне базы данных?