使用OraclePROFILE控制会话空闲时间
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之后查看数据库会话信息:
成功登陆后在数据库里面看到创建了两个session,可以看到session的login时间是11:17:09和11:17:28两个时间点。由于没有执行任何SQL,登陆成功后的session状态是INACTIVE的。
IDLE_TIME设置的为1分钟,1分钟后两个会话的状态变成了SNIPED,表示会话已经过期。
PL/SQL中执行任何SQL语句的时候,PL/SQL没有报错,成功执行。
11:20:47和11:20:51,状态又变成了INACTIVE。
SQL语句的时候自动的重新登陆了。
SQLPLUS的情况:
11:37:26登陆成功后,为SQLPLUS创建了一个SESSION,
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--
名称栏目:使用OraclePROFILE控制会话空闲时间
URL分享:http://ybzwz.com/article/pjcscj.html