
PostgreSQLを利用したJavaのシステムで、DB更新中に、エラーが発生することがあります。
その後、再処理を行うと、次のメッセージが出ます。
org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool exhausted
Tomcatを再起動すると、正常にDB更新が出来るようになります。
ほぼ毎日使っているシステムですが、1月18日と、4月26日の2回発生しています。
どのようなところを調査すればよいか、教えてください。
よろしくお願いします。
No.1ベストアンサー
- 回答日時:
こんにちは。
そのままエラーメッセージを検索エンジンにひっかけるといろいろな情報が出てきますよ。
例えば
http://d.hatena.ne.jp/kawam/20060208
エラーメッセージの意味もそのままで、プールを使い果たしてコネクションが取得できないという意味です。
取得したコネクションのclose漏れが原因だと思います。
Connection conn = null;
try {
conn = コネクション取得
// なんかいろいろ処理
conn.close();
} catch ( Exception e ) {
// エラーが起きたとき
}
この場合、なんかいろいろな処理で例外が発生した場合はコネクションが閉じられない状態になります。
Connection conn = null;
try {
conn = コネクション取得
// なんかいろいろな処理
} catch ( Exception e ) {
} finally {
if ( conn != null )
conn.close();
}
こうすると例外が発生しても必ずfinallyを通りますのでコネクションがクローズされます。
コネクション周りを見直してみてください。
早速のご回答ありがとうございます。
プログラムを調べて見ましたところ、
finallyには、コネクションのcloseをする文がありませんでした。
if ( conn != null )
conn.close();
を追加してみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ORA-01858: 数値を指定する箇所...
-
C# ListBoxのインデックスの値...
-
BOOL値を逆にしたい
-
例外でBeanUtils.populateが、...
-
空欄のテキストフィールドの判...
-
Java配列でNullPointerExceptio...
-
配列にnullを代入すると、null...
-
postgresql接続時
-
オブジェクトの中のプロパティ...
-
JSPでDBからデータ読み込みブラ...
-
C言語のポインターに関する警告
-
ループ処理の際、最後だけ","を...
-
System.err. printlnとSystem.o...
-
動的配列が存在(要素が有る)か...
-
javaで質問です。 文字列2023/2...
-
flush()とclose()について
-
1~100までの数字を表示したい
-
hiddenの値が期待した値で取得...
-
yyyymmddからyyyy/mm/d...
-
C#の質問
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ORA-01858: 数値を指定する箇所...
-
jsp/Servletの動的に増えるフォ...
-
BOOL値を逆にしたい
-
C# ListBoxのインデックスの値...
-
配列にnullを代入すると、null...
-
例外でBeanUtils.populateが、...
-
getStringの値がNULLの時の処理
-
Java配列でNullPointerExceptio...
-
eclipseでoracle接続時のエラー...
-
C#でラジオボタンとコンボボッ...
-
「null」と「""」は同じ?
-
javaの掲示板について
-
if文を通らない
-
空欄のテキストフィールドの判...
-
boolean型ではなくて
-
入力された文字列の制限
-
mysqlへの接続が出来ません
-
逆コンパイルの見方について(...
-
postgresql接続時
-
JSPでの画面表示の方法
おすすめ情報