2017-02-24 12 views
0

私のIISサーバーでは、(6から7のような)多くのアプリケーションプールがあり、それぞれに実行中のASP.NETアプリケーションが多数あります(プールごとに25個のアプリケーション)。それらはすべてADO.NETを使用してOracleデータベースと接続されています。接続プールがいっぱいです

すべてのアプリケーションがうまく動作しているが、時には私たちは、タイムアウトの期限が切れ

のようなエラーが発生します。プールから接続を取得する前にタイムアウト期間が経過しています。これは、プールされたすべての接続が使用中で、プールの最大サイズに達したために発生した可能性があります。

私はデータベース接続を適切に終了していないように、この可能性を知っています。だからここに私の頭痛がある...私たちは私たちのために仕事を取るのは非常に時間です接続を閉じることを忘れてどこを見るために、それぞれのプロジェクトを行ってみたくない。

したがって、開いているアプリケーションの接続を特定する方法はありますか。私たちはIIS自体から見ることができますか?どのプロジェクト接続が開いたままであるかを追跡するために、何らかのユーティリティを作成できますか?

+0

あなたは正確なエラー/例外テキストを提供できますか? – laylarenee

+0

プールの接続を取得する前にタイムアウト時間が経過しました。プールされた接続がすべて使用されており、最大プールサイズに達したために発生している可能性があります。 –

+0

この投稿は、開いている接続を観察する方法を詳しく説明しています:http://stackoverflow.com/questions/1043096/how-to-list-active-open-connections-in-oracle – laylarenee

答えて

0

私はそれがデータベースへの接続の問題であるとは確信していません。私はあなたのアプリケーションは、ガベージコレクタがメモリをクリアすることができないコンテキストを処分していないと思う。アプリケーションプールのリサイクルにかかる時間を短縮し、メモリ使用量が減少しているかどうかを確認することができます。