2011-04-22 77 views
1

我用來連接到oracle服務器的客戶端是PL/SQL開發者。oracle服務器在網絡連接丟失時如何處理實例

通過mistask,我執行了一個匿名的PL/SQL塊將永久運行的循環, ,所以我按了休息按鈕,並等待了1個多小時。

但當客戶端顯示提示「腳本已取消」時,該塊仍在運行,然後斷開網絡連接。

所以我的問題是爲什麼在「腳本取消」 後塊仍然運行,以及當網絡連接丟失時服務器如何處理我的實例。

回答

2

這個環節必須被dba殺死。如果循環達到正常終止,交易將被回滾。回滾的原因是服務器發現客戶端已經去除,並且不會得到提交,除非它被編碼。 如果循環已經等待,例如因爲IO必須完成,或者必須調用其他包,則它將終止。

+0

非常感謝。 – 2011-04-22 06:38:55

+0

而你的意思是,服務器會自動對丟失的會話做任何事情,直到dba殺死它爲止? – 2011-04-22 06:46:24

+0

如果服務器有時間查看,它將清理會話。如果沒有,因爲它處於一個緊密的循環中,dba必須殺死它,大部分時間都是通過殺死後臺進程。 – 2011-04-22 06:50:09