2012-09-10 29 views
1

在我的应用程序中,我遇到了连接池连接泄漏的问题。非活动连接池的数量

大约每3周池限制是筋疲力尽,应用服务器需要重新启动。从我的应用程序的'.Net数据提供程序的Sql服务器'观察性能计数器我注意到有时计数器NumbeOfInactiveConnectionPools的值在短时间内(大约30秒)增加1,并且它们回落到原来的值。偶尔会增加1而不会减少。长期价值变为1.然后继续增加1并减少。其结果是,现在长期的价值是2

难道这是连接泄漏的原因吗?有人可以向我解释这个计数器是什么意思,当连接池变为不活动时?我发现柜台的描述,我发现here,但它很差。

+0

所有的连接都实现'using'语句吗? – msmucker0527

+0

您是否超过了池中的连接数或池数?我没有完全明白。什么是症状?你有什么例外吗? –

+0

@ msmucker0527:是的,我处理所有连接。 –

回答

0

NumberOfInactiveConnectionPools似乎并不有什么做与当前连接数。 您必须监视活动连接池的数量和活动连接的数量。

我不明白你为什么会需要重新启动应用程序服务器(在你的应用程序在IIS托管?) - 你可能没有自由连接了 - 但你应该有他们的时间。

不幸的是超过池的大小可以由穷人的应用设计造成的。 你应该检查你的异常是否总是被一些特定的代码部分抛出,或者它是否随机发生。

如果它总是相同的代码 - 你应该重新设计这种功能。 如果它是随机的,则将连接字符串中的MaxPoolSize更改为更大的数字。