根据这个有用的文章 http://www.15seconds.com/issue/040830.htm我已确认运行 W2k3 的 IIS 6 服务器上的某些应用程序存在连接池泄漏。
困难的部分是,我正在从该服务器的 6 个应用程序池中为 700 名开发人员编写的 300 个网站提供服务,其中 50% 是 .NET 1.1,甚至在 CLR 数据性能计数器中都没有显示连接。如果一切都是 .NET 2.0+,我可以看到连接在我这边增长,但我什至在那个薄弱的监控工具上运气不佳。
我的 300 个网站连接到大约 100 多个分布在 Oracle、SQLServer 和异常值之间的数据库,因此我也无法从数据库端观察连接。
现在我最好也是唯一的计划是对我最严重的违规者进行松散的二分搜索。我将杀死应用程序池并慢慢地从其中删除应用程序,直到找到哪些单独的应用程序在我杀死其池时导致最多的连接丢失。但由于这是一个生产盒子,而且我喜欢继续工作,因此作为追踪方法,这可能需要数周时间。
有谁知道如何询问 IIS 连接池以了解其来源或所有者?是否有一个我可以在创建它们时附加的 MSMQ 触发器?我忽略了什么愚蠢的事情吗?
Kevin
(我将包含错误代码,以方便其他人通过搜索找到您的答案:
异常:System.InvalidOperationException
消息:超时已过。从池中获取连接之前超时时间已过。发生这种情况可能是因为所有池连接都在使用中并且达到了最大池大小。)
尝试从这个开始比尔·沃恩的第一篇文章 http://msdn.microsoft.com/en-us/library/aa175863(SQL.80).aspx.
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)