【发布时间】:2012-08-27 11:55:23
【问题描述】:
我面临以下问题:
连接池已达到最大连接数
我遵循了所有建议。问题不像以前,但很少发生!
我将Using statement 与我的所有联系人和读者一起使用。
最近我遇到了以下错误,我不得不重置iis 来解决我的问题。
Connection Pool has reached the maximum number of connections. at IBM.Data.Informix.IfxConnectionPool.ReportOpenTimeOut()
at IBM.Data.Informix.IfxConnectionPool.Open(IfxConnection connection)
at IBM.Data.Informix.IfxConnPoolManager.Open(IfxConnection connection)
at IBM.Data.Informix.IfxConnection.Open()
at DB_Connection_s.DB_Connection.GetUserSystems(String emp_num)
现在我读到了这个方法ClearAllPools()。但我不知道什么时候使用这个方法。如果这被认为是防止have to重置iis以解决请求超时问题的好解决方案? ?
【问题讨论】:
-
你能配置连接池的大小吗? Informix 数据库服务器是否与 IIS 在同一台机器上运行?如果是这样,您是否使用与 Informix 的共享内存连接?如果您正在使用与本地 Informix 服务器的共享内存连接,那么您可能已经超过了 Informix 配置为管理的同时连接数。然后您需要增加该配置并重新启动 Informix。如果您使用的不是共享内存连接,则以同样的方式连接没有上限。
-
那你为什么不试试 Max Pool Size=600 或 1000 呢?
-
您确定您的应用没有达到“正常”限制吗? IIS 可以创建许多线程,尤其是当您有许多 CPU/内核时。否则,您可能在 ADO.NET informix Connection 对象上缺少 Dispose(或缺少 using)。 (PS:在cmet中回复某人时请使用@[user],否则像我这样的评论者不会收到您的消息)
-
@just_name - 基本上可能是 3 件事:1) 缺少 using/dispose,2) 可以克服更改最大池大小的实际限制,3) ADO.NET 中的错误提供者。我会从一个非常小的应用程序开始尝试重现问题,如果它工作正常,然后再次检查您的代码。
-
我对 .NET 的了解可以用 72 磅文本写在邮票上。我没有看到任何可以帮助我帮助您的信息;您需要了解 Windows 和 .NET(最好也了解 Informix)的人。那个人不是我。
标签: c# asp.net performance connection-pooling informix