2017-02-24 95 views
0

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

所有应用程序都只是工作正常,但有时我们得到错误,如

超时过期。在从池中获取连接之前已超时。发生这种情况的原因可能是因为所有连接池都在使用中,并且达到最大池大小。

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

那么有什么方法可以确定哪些应用程序连接保持打开状态?我们可以从IIS本身看到吗?我们可以通过某种实用工具来跟踪哪个项目连接仍处于打开状态?

+0

你能否提供确切的错误/例外文本? – laylarenee

+0

嘿laylarence感谢回复我们得到的消息,如“超时过期。从池中获取连接之前超时时间已经过去,可能发生这是因为所有池连接正在使用,并达到最大池大小。 –

+0

这篇文章的详细信息如何观察打开的连接:http://stackoverflow.com/questions/1043096/how-to-list-active-open-connections-in-oracle – laylarenee

回答

0

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