识别及断开空闲用户的存储过程 上面的查询语句可以得到系统中所有的连接用户的一些基本情况,但是又如何来实现系统自动判断空闲超过一定时间的连接并将其自动断开呢?Oracle系统提供了一种称之为后台任务(Job)自动处理的机制。我们可以编写一个后台任务来定时执行,从而判断是否存在这样的用户连接,如果存在,则通过后台任务将其自动断开。

首先创建一个存储过程来完成空闲一定时间用户的识别和断开工作,然后添加一个后台任务来定时(根据空闲时间长短来确定)执行该过程,即可实现自动断开系统中空闲超过一定时间用户的需求。 存储过程p_monitor见下,其中参数an_nimutes为用户输入参数,用来确定识别和断开多长空闲时间连接的用户,单位为分钟,默认为60分钟,也就是1小时。

需要注意一点的是,该存储过程,需要以sys用户身份运行。相应,调用该存储过程的后台任务也需要以SYS身份来添加。 CREATE OR REPLACE PROCEDURE P_MONITOR( AN_MINUTES NUMBER DEFAULT 60) /**//******************************************* 存储过程用途:识别出系统中超过一定空闲连接时间(

AS_MINUTES)的用户,并将其kill掉参数:

AN_MINUTES 空闲时间数,单位为分钟,默认为60分钟 ********************************************/ AS

v_Str VARCHAR2(100);

CURSOR C_users(v_minutes number) IS

SELECT s。

username,

s。status, s。machine, 'alter system kill session '

||''''||s。sid||','||s。serial# ||'''' operates

FROM v$session s, v$process p

WHERE TYPE = 'USER'

AND p。

addr = s。paddr

AND status != 'KILLED'

-- AND SUBSTR (machine, 1, 19) NOT IN ('需要屏蔽不被处理的机器名')

AND last_call_et > v_minutes*60

ORDER BY last_call_et desc; BEGIN FOR T_users IN C_users(an_minutes) LOOP v_Str := T_USERS。

OPERATES; EXECUTE IMMEDIATE v_str; END LOOP; END; /

三、后台任务的定时执行 最后,我们为系统添加一个定时任务,定时调用上面创建的存储过程,即可完成系统自动识别和处理空闲用户的工作。 下面是一个实际调用的例子,在sys用户下,首先添加一个任务,该任务每隔半小时运行一次,每次均调用P_monitor存储过程,找出系统中空闲时间超过1小时的连接,然后自动断开。

DECLARE jobno number; BEGIN DBMS_JOB。

SUBMIT( job => jobno, what => 'p_monitor(60);', next_date => SYSDATE, interval => '/*1:Hr*/ sysdate + 30/1440); -- 每半小时运行一次 END; /。

全部

oracle自动结束连接,如何在Oracle8x中实现自动断开后再连接?相关推荐

  1. sql oracle 自增长字段,在Oracle、MySQL、MS SQL Server中创设自动增长字段

    在Oracle.MySQL.MS SQL Server中创建自动增长字段 好吧,今天面试有道题,要各个数据库怎么建立自增长字段,顺便复习一下吧,最近面试很多数据库问题... 一:Oracle Orac ...

  2. aws中部署防火墙_如何在AWS中设置自动部署

    aws中部署防火墙 by Harry Sauers 哈里·绍尔斯(Harry Sauers) 如何在AWS中设置自动部署 (How to set up automated deployment in ...

  3. access自动编号怎么解除_如何在 Access 中重置“自动编号”字段值

    如何在 Access 中重置"自动编号"字段值 中删除某个表中的一些行或所有行时,"自动编号"字段不会自动重置.要重置"自动编号"字段值并 ...

  4. 如何在SQL中设置自动编号

    如何在SQL中设置自动编号 关键词: 自动编号    SQL    设置    Nicholas    课程设计 你创建一个表,把其中一个列(比如"ID")的"标识列&q ...

  5. 00003 不思议迷宫.0009.2.4:自动换装:在事件中实现自动换装

     00003 不思议迷宫.0009.2.4:自动换装:在事件中实现自动换装 具体的换装动作如何实现呢?老办法:学原版.在前一章中,我们已经接触过一个叫做"UIEquipsOperatio ...

  6. php自动收货,如何在PHP中实现一个订单自动确认收货的redis队列

    如何在PHP中实现一个订单自动确认收货的redis队列 发布时间:2020-12-14 15:45:55 来源:亿速云 阅读:65 作者:Leah 本篇文章为大家展示了如何在PHP中实现一个订单自动确 ...

  7. 如何设置Oracle工作表有提示,excel表格中自动数据提醒-excel工作表中如何自动跳出提醒框...

    excel表格怎么设置到期日前自动提醒功能 菜单项〉工具>选项.在图中选择.在弹出的对话框中把"记忆式键入"前面的对勾去掉行了. 详见图示. 在Excel表格里面怎样设置&q ...

  8. linux中修改静态ip后无法连接网络,我手机连接Wifi后有时候突然不能上网,我把设置中的静态iP改了才恢复,请教一下这是为什么?...

    我手机连接Wifi后有时候突然不能上网,我把设置中的静态iP改了才恢复,请教一下这是为什么?以下文字资料是由(历史新知网www.lishixinzhi.com)小编为大家搜集整理后发布的内容,让我们赶 ...

  9. java的自动装箱和拆箱,Java中的自动装箱和拆箱是什么?

    当我们用任何语言编写程序时,大多数时候我们使用原始数据类型,.但是,在面向对象编程领域,有些情况下原始数据类型会出现不足,而Java就是其中之一.为了克服原始数据类型的缺点,我们 当我们用任何语言编写 ...

最新文章

  1. 针对ie6的一些小总结
  2. 方法对象java final关键字的用法
  3. SAP系统中的银行主数据FI12
  4. matlab敏感词输出代码,敏感词设置
  5. 设计模式随笔系列:鸭子-策略模式(Strategy)
  6. Zookeepe实践与应用--分布队列
  7. 瑞信中国前CEO唐臻怡加盟商汤科技出任副总裁
  8. js替换字符中的斜杠反斜杠
  9. eigrp配置实验_来,太阁带你做实验
  10. 华为nova7se乐活版支持鸿蒙,华为nova7se乐活版和畅享20se哪个好 参数区别对比评测...
  11. 利用YQL制作自己的小工具
  12. vue2.0 组件和v-model
  13. 面试再问HashMap,求你把这篇文章发给他!
  14. CS224N笔记——RNN和语言模型
  15. submit 读取mb52数据
  16. Python-密码字典生成
  17. 计算机桌面显示保护眼睛设置,电脑屏幕怎么设置才能保护眼睛
  18. HDU 4565 So Easy!
  19. 《科学》公布2021年度十大科学突破!
  20. 美国研究生院计算机数据科学排名,美国研究生数据科学专业排名

热门文章

  1. Joint European Conference on Machine Learning and Knowledge Discovery in Databases(ECML-PKDD)会议怎么样?
  2. tensorflow 实现打印预训练的模型中的变量名和变量值
  3. Apache配置URL重定向
  4. 笔记:css中的position定位
  5. 二分图 洛谷P2055 [ZJOI2009]假期的宿舍
  6. ServletConfig讲解
  7. plsql 连接oralce数据库,报ora 12557 tns 协议适配器不可加载错误
  8. mysql的逻辑备份和恢复
  9. Exchange2013 企业部署解决方案-Part 2
  10. 让你的代码量减少3倍!使用kotlin开发Android(四) kotlin bean背后的秘密