Oracle inactive session的清理
| STATUS ACTIVE - Session currently executing SQL INACTIVE KILLED - Session marked to be killed CACHED - Session temporarily cached for use by Oracle*XA SNIPED - Session inactive,waiting on the client (1)active 处于此状态的会话,表示正在执行,处于活动状态。 官方文档说明:
        Any session that is connected to the database and is waiting for an event that does not belong to the Idle wait class is considered as an active session.(2)killed处于此状态的会话,被标注为删除,表示出现了错误,正在回滚。 当然,也是占用系统资源的。还有一点就是,killed的状态一般会持续较长时间,而且用windows下的工具pl/sql developer来kill掉,是不管用的,要用命令:alter system kill session ‘sid,serial#‘ ; (3)inactive 处于此状态的会话表示不是正在执行的 该状态处于等待操作(即等待需要执行的SQL语句),通常当DML语句已经完成。 但连接没有释放,这个可能是程序中没有释放,如果是使用中间件来连接的话,也可能是中间件的配置或者是bug 导致。
        inactive对数据库本身没有什么影响,但是如果程序没有及时commit,那么就会造成占用过多会话。容易是DB 的session 达到极限值。解决方法: 1 SQLNET.EXPIRE_TIME (适当设置大小) 根据下列SQL,再根据应用服务器主机名,可判断应用的连接数情况: SELECT b.MACHINE,b.PROGRAM,COUNT (*) FROM v$process a,v$session b WHERE a.ADDR = b.PADDR AND b.USERNAME IS NOT NULLADN A.TYPE !=‘BACKGROUND‘and a.status in (‘ACTIVE‘,‘INACTIVE‘)GROUP BY b.MACHINE,b.PROGRAMORDER BY COUNT (*) DESC; (编辑:宣城站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! | 



