连接池已满

时间:2017-02-24 18:57:25

标签: asp.net c#-4.0 ado.net iis-7.5

在我的IIS服务器中,我有许多应用程序池(例如6到7),并且每个应用程序池上运行许多ASP.NET应用程序(例如每个池25个应用程序)。它们都使用ADO.NET与Oracle数据库连接。

所有应用程序都运行良好,但有时我们会收到类似

的错误
  

超时已过期。从池中获取连接之前经过的超时时间。这可能是因为所有池连接都在使用中并且达到了最大池大小。

我知道这样做的可能性,就像我们没有正确关闭数据库连接一样。所以这就是我的头痛......我不想去每个项目,看看我们忘记关闭连接的地方,现在是我们的任务。

那么有什么方法可以确定哪些应用程序连接仍然打开?我们可以从IIS本身看到吗?我们是否可以使用某种实用程序来跟踪哪个项目连接仍然打开?

1 个答案:

答案 0 :(得分:0)

我不确定这是与数据库连接的问题。我认为你的应用程序没有处理上下文然后垃圾收集器无法清除内存。您可以尝试减少重新打包应用程序池的时间,然后检查内存使用量是否在减少。