Ждать / Спать в PLSQL - PullRequest
       20

Ждать / Спать в PLSQL

2 голосов
/ 19 апреля 2011

Я хочу проверить синхронизацию / асинхронный вызов процедуры с именем pro1. Для этого я хочу поставить блокировку вызова в pro1.

DECLARE
    t INTEGER;
BEGIN
    t := 60;
    DBMS_LOCK.sleep(t);
END;
/

Просто хочу убедиться, будет ли это ожидание / блокировка синхронизации? т. е. мой proc1 не выйдет, пока блокировка не будет завершена?

P.S: Во время работы Proc1 существует другая процедура. Я хочу проверить его выполнение при блокировке соединения Pro1

1 Ответ

1 голос
/ 19 апреля 2011

DBMS_LOCK.sleep переведет процесс сеанса в спящий режим, то есть: этот сеанс ничего не будет делать в течение 60 секунд.

Я не уверен, что вы подразумеваете под "блокировкой соединения". Если в сеансе, в котором выполняется процедура sleep, имеется какая-либо ожидающая блокировка, они будут сохраняться во время сна, и другие сеансы, которые могут быть ей заблокированы, должны будут ожидать, что первый сеанс будет либо зафиксирован, либо как выполнен откат, как обычно.

...