[20190721]12CR2 max_idle_time 2.txt
--//昨天测试max_idle_time,我自己有点不理解oracle为什么会加入这样的参数。
--//首先这个参数仅仅在system级别上测试,而不是在session级别,缺乏灵活性。
--//查看官方文档如下:
https://docs.oracle.com/en/database/oracle/oracle-database/18/refrn/MAX_IDLE_TIME.html#GUID-9E26A81D-D99E-4EA8-88DE-77AF68482A20
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/,如需转载,请注明出处,否则将追究法律责任。
转载于:http://blog.itpub.net/267265/viewspace-2651245/