[20190721]12CR2 max_idle_time 2.txt

lfree發表於2019-07-21

[20190721]12CR2 max_idle_time 2.txt

--//昨天測試max_idle_time,我自己有點不理解oracle為什麼會加入這樣的引數。
--//首先這個引數僅僅在system級別上測試,而不是在session級別,缺乏靈活性。

--//檢視官方文件如下:


1.184 MAX_IDLE_TIME

MAX_IDLE_TIME specifies the maximum number of minutes that a session can be idle. After that point, the session is
automatically terminated.

Property                Description
----------------------------------------------
Parameter type         Integer
Default value          0
Modifiable             ALTER SYSTEM
Modifiable in a PDB    Yes
Range of values        0 to the maximum integer. The value of 0 indicates that there is no limit.
Basic                  No
Oracle RAC             Different instances can use different values.
----------------------------------------------
--//補充測試有事務的情況。

1.環境:
SCOTT@test01p> @ ver1
PORT_STRING                    VERSION        BANNER                                                                               CON_ID
------------------------------ -------------- -------------------------------------------------------------------------------- ----------
IBMPC/WIN_NT64-9.1.0           12.2.0.1.0     Oracle Database 12c Enterprise Edition Release 12.2.0.1.0 - 64bit Production              0

SCOTT@test01p> alter system set max_idle_time=1 scope=memory;
System altered.

--//退出再進入。

2.測試一:
SCOTT@test01p> select sysdate from dual ;

SYSDATE
-------------------
2019-07-21 07:35:28

--//等30秒後。中間亂按一些字元在刪除(或者直接輸入以上命令),等2分鐘之後執行(不要超過2分30秒執行):

SCOTT@test01p> select sysdate from dual ;
SYSDATE
-------------------
2019-07-21 07:37:33

--//可以發現並沒有斷開。繼續中間在介面上按滑鼠按鈕。等2分鐘之後執行:

SCOTT@test01p> select sysdate from dual ;
select sysdate from dual
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 2604
Session ID: 251 Serial number: 62541

--//可以開始記時從有鍵盤輸入算起。超時最小要2*MAX_IDLE_TIME才會終止連線。

3.測試二,如果有事務情況如下:
SCOTT@test01p> create table t as select level id from dual connect by level<=10;
Table created.

SCOTT@test01p> update t set id=id+1;
10 rows updated.

SCOTT@test01p> select sysdate from dual ;
SYSDATE
-------------------
2019-07-21 07:49:17

SCOTT@test01p> host sleep 120

SCOTT@test01p> select sysdate from dual ;
select sysdate from dual
*
ERROR at line 1:
ORA-03113: end-of-file on communication channel
Process ID: 908
Session ID: 181 Serial number: 31136

--//重新登入:
SCOTT@test01p> select * from t;
        ID
----------
         1
         2
         3
         4
         5
         6
         7
         8
         9
        10
10 rows selected.
--//事務回滾了。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/267265/viewspace-2651245/,如需轉載,請註明出處,否則將追究法律責任。

相關文章