asp.net 2.0使用odp.net 10.1.04连接到Oracle 10g。
我们的网络应用程序每天都有一次这个问题:ODP-1000“连接请求超时”。
正如我们所知,这是一个内存泄漏问题,由于打开的连接无法关闭和处理而导致。
我们仔细检查了我们的代码,打开后的所有连接都已关闭并处理完毕。所有odp.net对象,如OracleCommand,Oracledatareader都在使用后处理。
在web.config上,这是我们的连接字符串:
<add key="ConnectionString" value="user id=xxxx;data source=XXXX;password=xxxxx;Pooling=True;Connection Timeout=15;Incr Pool Size=5;Decr Pool Size=3;Max Pool Size=300;Min Pool Size=10;Validate Connection=true;"/>
我们已将连接超时增加到60。
由于我们在代码中找不到任何未关闭的连接,当conn.Open收到错误“连接请求超时”时,有没有办法关闭或销毁非活动的Oracle会话?
根据一些信息: http://rainmanalex.wordpress.com/2008/11/13/odpnet-connection-string-attributes/
“调节器线程每隔3分钟生成一次,如果不使用,则关闭池内连接的Decr池大小。”
而不是等待3分钟,是否有任何方法强制关闭非活动连接时收到错误“连接请求超时”?
类似的东西:
If conn.Open gets error "Connection request timed out"
Then
Destroy inactive Oracle session
Try again conn.Open
End If