oracle session 的 inactive 状态

   
inacive是指这个连接已经与数据连接了,但没有当前没有处于空闲状态(没有执行SQL)
检查session数:
select   count ( * from  v$session
检查process数:
select   count ( * from  v$process
一个自动杀 的job
CREATE   OR   REPLACE   PROCEDURE  "KILL_SESSION"  AS
        v_sid 
number ;
        v_serial 
number ;
                killer 
varchar2 ( 1000 );
        
CURSOR  cursor_session_info  is   select  sid,serial#  from  v$session  where  type != ' BACKGROUND '   and  status = ' INACTIVE '   and  last_call_et > 2700   and  username = ' ICWEB '   and  machine = ' orc ' ;
BEGIN
        
open  cursor_session_info;
        loop
                
fetch  cursor_session_info  into  v_sid,v_serial;
                
exit   when  cursor_session_info % notfound;
                                
                                killer:
= ' alter system disconnect session  ''' || v_sid || ' , ' || v_serial || '''  post_transaction immediate ' ;
                                                                
execute  immediate killer;
                                        
end  loop;
                dbms_output.PUT_LINE(cursor_session_info
% rowcount || '  users with idle_time>2700s have been killed! ' );
                
close  cursor_session_info;
END ;
/

这样做其实还是治标不治本,最好能够解决连接池自动释放idle进程的问题

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值