我想測試名爲pro1的過程的同步/異步調用。爲此,我想在pro1中加鎖。PLSQL中的等待/睡眠
DECLARE
t INTEGER;
BEGIN
t := 60;
DBMS_LOCK.sleep(t);
END;
/
只是想確定,是否會等待/鎖定同步呼叫?即我的proc1不會退出,直到鎖定完成?
P.S: 雖然Proc1正在運行,但還有另一個過程。我想在有連接上的鎖被Pro1的
我想測試名爲pro1的過程的同步/異步調用。爲此,我想在pro1中加鎖。PLSQL中的等待/睡眠
DECLARE
t INTEGER;
BEGIN
t := 60;
DBMS_LOCK.sleep(t);
END;
/
只是想確定,是否會等待/鎖定同步呼叫?即我的proc1不會退出,直到鎖定完成?
P.S: 雖然Proc1正在運行,但還有另一個過程。我想在有連接上的鎖被Pro1的
DBMS_LOCK.sleep
將把會話進程休眠,以測試它的執行,I-E:本次會議將持續60秒什麼也不做。
我不確定你的意思是「鎖定連接」。如果運行sleep
過程的會話有任何鎖定掛起,它們將在睡眠期間保留,其他會話可能會被其阻塞,必須等待第一個會話正常提交或回滾。
沒關係,在我們的應用程序中,有時間事件被稱爲***工作***。並且它在作業運行時發生,這需要時間並且同時,如果我們取消部署應用程序,它會得到數據庫鎖定的異常。我們想要做的是使用** DBMS_SCHEDULER.RUN_JOB('name',false)**異步調用***作業***。爲了測試這個,我想運行一個簡單的工作,並在其中調用睡眠,這樣我需要時間。同時,我想看看undeployement是否停止 – 2011-04-19 16:52:44
@alee:調用'sleep' proc的工作在睡眠時不會做任何事情。它也不會在睡眠結束之前返回,因此總的執行需要時間。 – 2011-04-19 17:10:20
與包的名稱可能暗示的不同,'DBMS_LOCK.sleep'並沒有真正鎖定任何東西。 – 2011-04-20 02:58:38