負荷がかかっているときに失敗する MVC3 アプリケーションからのこのエラーを調査しています。
「プールから接続を取得する前にタイムアウト時間が経過しました。これは、プールされたすべての接続が使用中で、最大プール サイズに達したために発生した可能性があります。」
アプリケーションはリポジトリ パターンと Entity Framework を使用していますが、接続が適切に閉じられていないように思います。SQL Server でプールされた接続の数を監視できるようにしたいと考えています。調べてみると、Perfmon でこれらのカウンターを使用できると思います。
- .NET CLR データ
- SQLServer 用の .NET データ プロバイダー
ただし、両方とも表示され、無効化/グレー表示されています。
サーバー上で Perfmon を直接実行しており、ISS と SQL Server の両方がサーバー上で実行されています。これらのカウンターが利用できない理由はありますか?
また、SQL プロファイラーを使用してプールされた接続を監視しようとしましたが、AuditLogin で EventSubClass 列を使用できません。