Vin*_*ntH 5 sql-server iis perfmon connection-pooling asp.net-mvc-3
我正在从负载失败的MVC3应用程序调查此错误:
"在从池中获取连接之前已经过了超时时间.这可能是因为所有池连接都在使用中并且达到了最大池大小."
该应用程序正在使用存储库模式和实体框架,我的预感是它没有正确关闭连接.我希望能够监视SQL Server上的池连接数.搜索引导我相信我可以在Perfmon中使用这些计数器:
但是它们都显示并被禁用/变灰.
我直接在服务器上运行Perfmon,并且ISS和SQL Server都在服务器上运行.有什么想法为什么这些计数器不可用?
我还尝试使用SQL事件探查器来监视池化连接,但是EventLog子类不适用于AuditLogin.
您可以从SQL查询窗口运行此命令以获取计数以及SQL服务器上运行的当前连接和会话的详细信息.
select * FROM sys.dm_exec_sessions AS es
INNER JOIN sys.dm_exec_connections AS ec
ON es.session_id = ec.session_id
Run Code Online (Sandbox Code Playgroud)
我在汇集连接方面遇到了麻烦.他们很难控制.显然关闭它们似乎永远不会起作用,因为它们处于.NET的控制之下.我们用完连接的最大原因是未提交的事务.如果某个事务由于某种原因未提交或回滚,则连接不会被重新使用,而是迫使.NET打开另一个连接以继续处理.
| 归档时间: |
|
| 查看次数: |
13886 次 |
| 最近记录: |