Microsoft Windows [版本 6.1.7601]
(c) 2009 Microsoft Corporation。保留所有權利。
SQL*Plus: Release 11.2.0.3.0 Production on 星期二 4月 14 08:42:55 2015
1分鐘。
16行。
SQL> alter system set resource_limit =true; <<<< 對PROFILE中KERNEL類型的項目進行控制需要將該參數設置為TRUE,PASSWORD類型的項目不受此參數限制。
SQL*Plus: Release 11.2.0.3.0 Production on 星期二 4月 14 08:55:49 2015
1 行出現錯誤:
ORA-02396: 超出最大空閑時間, 請重新連接
SQLPLUS,對PL/SQL工具無效,下面討論一下為什么對PL/SQL無效。
test111登陸PL/SQL之后查看數據庫會話信息:
IDLE_TIME設置的為1分鐘,1分鐘后兩個會話的狀態變成了SNIPED,表示會話已經過期。
PL/SQL中執行任何SQL語句的時候,PL/SQL沒有報錯,成功執行。
11:20:47和11:20:51,狀態又變成了INACTIVE。
SQL語句的時候自動的重新登陸了。
SQLPLUS的情況:
1分鐘沒操作后會話變成了SNIPED狀態。
SESSION已經被KILL。
由此可以判斷,PROFILE IDLE_TIME對SQLPLUS有效,對PL/SQL無效跟客戶端有很大關系。
SQLNET.EXPIRE_TIME參數的含義:
SQLNET.EXPIRE_TIME=1表示每過1分鐘都向客戶端發出一個測試連接的包,客戶端收到后會給出響應,如果連接正常,這個連接是不會被殺掉的。
Oracle推薦PROFILE和SQLNET.EXPIRE_TIME一起使用,但由于PL/SQL工具本身的特點,它會在SESSION的狀態變成SNIPED(PROFILE IDLE_TIME超時)后,第一次操作的時候自動重新連接,所以這兩種方法都控制不了它。
Oracle提出一種方法,就是在Oracle服務器端部署定時殺掉SNIPED狀態會話的腳本。但是為了處理少量的PL/SQL客戶端,未免有點大費周章了。
--end--
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。