2009-11-24 89 views
1

什么是处理连接池与Oracle 11g和asp.net的最佳方式,我遇到了以下问题:Oracle拒绝为Web应用程序打开任何新连接后而。Oracle 11g上的连接池w/asp.net

这会导致请求超时并排队。

编辑: 这有什么,我需要在Oracle中做微调呢?

+0

您确定您正在积极销毁代码中的所有连接,例如通过使用using语句吗? – 2009-11-24 15:34:23

+0

是的。 oConn.Close(),.追踪/查看开放连接的数量是否有某种程度? – hminaya 2009-11-24 15:54:46

+0

您使用哪个数据库提供程序? ODP.net,devart,dotconnect,微软的Oracle供应商? – tuinstoel 2009-11-24 18:48:44

回答

0

关闭连接是您所需要做的。该框架应该处理所有的池。

+0

我已经这样做了,我关闭了所有连接。 – hminaya 2009-11-24 15:54:03

+1

您可以尝试odp.net性能计数器。 – 2009-11-24 20:17:24

0

查询v $会话将显示所有未完成的会话。 您有多少个连接,您尝试创建/断开连接的速度有多快?共享服务器是让多个终端客户端共享有限数量的连接的一种机制。

+0

我在那里看到数百个会话。但我在哪里定义/控制它? – hminaya 2009-11-24 22:36:50

2

由于您没有提及您的Oracle配置,因此很难告诉您第一个操作步骤,因此您需要澄清您有多少个会话。

SELECT username, count(1) FROM v$session GROUP BY username; 

Oracle的最大值由“PROCESSES”实例参数控制。默认值可能是150.你可能会尝试为300个左右的OLTP Web应用程序,但是,如果你有泄漏,它只会推迟不可避免的。但检查PROCESSES至少与您的Oracle ADO连接字符串的“Max Pool Size”设置一样大。我认为,默认的11g ODP.NET是100。