【发布时间】:2016-07-20 10:04:57
【问题描述】:
我们的网站刚刚遇到问题。我们在 Windows 12 Azure 服务器上运行 Oracle 12c 数据库并使用 IIS 8。 ODP.NET 是我们使用的提供者。该网站使用 C# 构建并作为 64 位 Web 应用程序运行。
无论出于何种原因,Oracle 都没有释放我们的连接,过了一会儿我们得到了一个 Oracle 错误:
ORA-12520: TNS:listener could not find available handler for requested type of server
我们检查了所有的连接字符串,添加:
Min Pool Size=10;Max Pool Size=100;Connection Lifetime=120;Connection Timeout=60;Incr Pool Size=5; Decr Pool Size=2
我们将 Oracle 配置中定义的 MAX Process 和 Sessions 增加了一倍以上。
这有帮助,但只是为了延迟问题。
目前我们所做的是一个批处理文件,它每 10 分钟运行一次,并杀死 30 分钟后仍然存在的所有非活动会话(ALTER SESSION KILL....IMMEDIATE)。
这就是我们所处的位置,我们已启用 ODP.NET 跟踪并等待明天查看,但是到了这个时候,什么会导致这个问题?
【问题讨论】:
-
您使用的是哪个 .net ADO Oracle 客户端?建立连接的代码是什么样的?写得不好的代码不使用
using块或finally块在使用后关闭每个连接可能是罪魁祸首。如果没有更多信息,可能没有人可以为您做很多事情。 -
抱歉,只看我的回答。我正在为其他人记录。
标签: asp.net oracle connection-pooling odp.net application-pool