この有用な記事に従って、W2k3 を実行している IIS 6 サーバー上の一部のアプリケーションで接続プール リークがあることを確認しました。
難しいのは、このサーバーの 700 人の開発者によって作成された 300 の Web サイトを 6 つのアプリケーション プールで提供していることです。その 50% は .NET 1.1 であり、CLR データ パフォーマンス カウンターに接続さえ表示されません。すべてが .NET 2.0 以降であれば、自分の側で接続が拡大するのを見ることができますが、そのスリムな監視ツールではうまくいきません。
私の 300 の Web サイトは、おそらく 100 以上のデータベースに接続しており、それらは Oracle、SQLServer、異常値の間に広がっているため、データベースからの接続が終了するのを見ることもできません。
今のところ、私の最善かつ唯一の計画は、最悪の犯罪者を大まかに二分探索することです. アプリケーション プールを強制終了し、そのプールからアプリケーションをゆっくりと削除します。プールを強制終了したときに、どの個々のアプリケーションで最も多くの接続が切断されるかがわかるまで続けます。しかし、これは生産用のボックスであり、私は継続的な雇用が好きなので、追跡方法としては数週間かかる可能性があります.
IIS接続プールに問い合わせて、その起源または所有者を知る方法を知っている人はいますか? 作成時にアタッチできる MSMQ トリガーはありますか? 私が見落としているばかげたことはありますか?
ケビン
(他のユーザーが検索で回答を見つけやすくするためにエラー コードを含めます: 例外: System.InvalidOperationException メッセージ: タイムアウトが発生しました。プールから接続を取得する前にタイムアウト期間が経過しました。これは、プールされたすべての接続が使用し、最大プール サイズに達しました。)