我的编程空间,编程开发者的网络收藏夹
学习永远不晚

使用Oracle PROFILE控制会话空闲时间

短信预约 -IT技能 免费直播动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

使用Oracle PROFILE控制会话空闲时间


   客户想实现对会话空闲时间的控制,下面是做的一个例子。

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之后查看数据库会话信息:


使用Oracle PROFILE控制会话空闲时间
   成功登陆后在数据库里面看到创建了两个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的情况:

使用Oracle PROFILE控制会话空闲时间
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--

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

使用Oracle PROFILE控制会话空闲时间

下载Word文档到电脑,方便收藏和打印~

下载Word文档

编程热搜

目录