1

在我的应用程序中,我遇到了汇集连接泄漏的问题。

大约每 3 周就会用完池限制,需要重新启动应用程序服务器。观察我的应用程序的“.Net Data provider for Sql server”组的性能计数器,我注意到有时计数器的值会在NumbeOfInactiveConnectionPools短时间内(大约 30 秒)增加 1,然后又会降低到原来的水平。有时它会增加 1 并且不会减少。长期值变为 1。然后它继续增加 1 并减少回来。因此,现在长期值为 2。

这是连接泄漏的原因吗?有人可以向我解释这个计数器的含义以及连接池何时变为非活动状态吗?我找到了我在这里找到的柜台的描述,但它很差。

4

1 回答 1

0

NumberOfInactiveConnectionPools 似乎与当前连接数没有任何关系。您必须监视活动连接池的数量和活动连接的数量。

我不明白您为什么需要重新启动应用程序服务器(您的应用程序是否托管在 IIS 上?)-您现在可能没有免费连接-但您应该及时获得它们。

不幸的是,超过池大小可能是由糟糕的应用程序设计引起的。您应该检查您的异常是否总是由代码的某些特定部分引发,还是随机发生。

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

于 2012-09-13T22:06:25.057 回答