为什么两周不活动后Oracle会话仍然有效


16

数据库:Oracle 10g

操作系统:Windows Server 2003 64位

我查询Web应用程序生成的Oracle会话列表(按program = w3wp.exe筛选)

select * from V$session
where UPPER(program) LIKE '%W3%'
order by logon_time

在此处输入图片说明

根据Logon_Time,为什么在2012年7月31日或2012年8月1日或今天(2012年8月21日)之前的任何会议中仍存在活动会话?

我在sqlnet.ora上进行了配置:SQLNET.EXPIRE_TIME = 20因此,这意味着Oracle每20分钟检查一次连接是否仍处于活动状态。

所有用户方案都有默认配置文件。这意味着没有会话将永不过期或死亡吗?

在此处输入图片说明

在回应Phil的评论时添加:

在此处输入图片说明

补充了Phil的回答:

在此处输入图片说明


什么是v$session.PREV_EXEC_START对这些会议?我怀疑它们是连接池的一部分,因此没有被闲置,因为它们被频繁使用。
Philᵀᴹ

我的是Oracle 10g,因此v $ session上没有PREV_EXEC_START列。但是我再次查询了包括Last_Call_ET列(我在问题上添加了该图片)。
Delmonte

我与开发人员进行了交谈,他们告诉我他们在Web应用程序中使用ODP.NET。因此,可以肯定的是,这些会话是在连接池中生成的。当Oracle的状态显示为INACTIVE时,我不完全信任,但是在这种情况下...您认为我可以取消两周前的会话吗?
–'Delmonte

7
否。INACTIVE仅表示您检查的确切时刻没有执行SQL语句v$session。如果它们是连接池的一部分,那么它们就可以正确地工作-连接池的全部目的是消除大量登录/注销的需要,并保持持久的会话以快速启动(一次又一次更大的开销登录)只是执行一个查询)。我不明白您为什么为此担心。
Philᵀᴹ

@Phil-我很乐意将此作为答案!
贾斯汀·凯夫

Answers:


22

我怀疑它们是连接池的一部分,因此没有被闲置,因为它们被频繁使用。

INACTIVEv$session仅仅意味着有没有确切的时刻,你检查正在执行的SQL语句v$session

如果它们是连接池的一部分,则可以通过长时间登录来正确地完成工作。连接池的全部目的是消除对大量登录/注销的需求,并保持持久的会话以快速启动查询-要执行一个查询然后每次都断开连接,登录的开销要大得多。

要获取每个会话的上次活动时间:

select username, UPPER(program), logon_time, 
       floor(last_call_et / 60) "Minutes since active", status
from v$session
where UPPER(program) LIKE '%W3%'
order by last_call_et;

我建议您不要杀死会话,除非您知道这样做不会在应用程序端引起问题(例如,尝试使用被杀死的会话)。

可能是因为您正在查看配置错误的连接池,一旦应用程序启动,该连接池会创建数百个连接-连接池可能比需要的大小大一个数量级。我建议与开发人员/应用程序支持人员联系并研究连接池的配置方式。

经过一些研究,w3wp.exe是IIS应用程序池过程-您几乎可以肯定要与IIS Web服务器管理员联系,以帮助您深入了解连接池配置。


感谢您的解释,但是如果那些odp.net会话的值在不断增长,该怎么办?我查询v $ resource_limit(在我的原始问题上添加),并显示进程和会话的值已达到值限制的80%。那些odp.net会话可能正在消耗我的会话值,达到701极限值,然后断开我的数据库连接?(我知道我可以将这些限制值扩展到1000或2000,但这不是问题的一部分)
Delmonte 2012年

然后您有一个应用程序问题。
Philᵀᴹ

为什么?Web应用程序正在打开,关闭和处理odp.net连接...据我所知,即使Web应用程序处理了这些odp.net会话,它们仍在等待将来的连接。
Delmonte

看来这将是一个连接池配置问题。您是否绘制了一段时间内v $ session的计数(*)?您是否具有数据库的诊断包许可证?
Philᵀᴹ

3
我认为您的意思是IIS(微软的HTTP /应用服务器),而不是ISS(国际空间站):-)
贾斯汀·凯夫
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.