お世話になります。
javaサーブレットからoracleに接続する際、以下のエラーが発生して困っております。
エラー:java.sql.SQLRecoverableException: クローズされた接続です。
解決するための情報を頂けますでしょうか。
私がテストしている環境は、以下となります。
【Webサーバ】
centOS5.5.
jdk1.6
tomcat5.5
【DBサーバ】
centOS5.5.
oracle10g r2
jdbcドライバーは、ojdbc6.jarを使用しております。
サーブレット起動時にDB接続し処理完了時にDBクローズしていますが、DBクローズ処理にて
上記エラーが、発生してしまいます。
DB接続及びDBクローズは、以下のようにプログラミングしております。
/**
* 概要 : DBアクセス
* 処理 : DBアクセス
*/
public void dbAccess() throws Exception {
conn = null;
try {
DriverManager.setLogWriter(new PrintWriter(System.out));
Class.forName(driver);
conn = DriverManager.getConnection(
jdbcPrefix + hotname + dbname,
username,password);
// 自動コミット・モードを設定(手動コミット)
conn.setAutoCommit(false);
}catch (SQLException e) {
throwe;
}catch (Exception e) {
throwe;
}
}
/**
* 概要 : DBクローズ
* 処理 : DBを閉じます。
*/
public void dbClose() throws Exception {
try {
if (conn != null)
conn.close();
}catch (Exception e) {
throwe;
}
}
お手数お掛け致しますが、ご教授宜しくお願い致します。
No.2
- 回答日時:
#1さんに追記で
どこでエラーが起きているのかが分からないので
それも書いてもらえないかしら?
この回答への補足
public void doGet(HttpServletRequest request,
HttpServletResponse response)
throws ServletException, IOException{
DB db= null;
ResultSet rs = null;
try {
db= new DB(strDriver,strJdbcPrefix,strHostName,strUserName,strPassWord,strDbName);
//DBへ接続
db.dbAccess();
//パラメータ取得
String[] Parameter = new String[3];
Parameter[0] = request.getParameter("no");
no = null;
tel = null;
address = null;
//パラメータチェック用
boolean pramErrFlag = false;
//No.取得用
String machin = null;
String rtnPram1 = null;
String rtnPram2 = null;
//パラメータが、No.の場合
if (Parameter[0] != null && Parameter[0].length() != 0 && Parameter[0].length() == 12){
no = Parameter[0];
//テストマスタ件数チェック
switch(selectCntMstTest(rs,db)){
case 1:
//パラメータ正常
pramErrFlag = true;
machin = selectMstTest(rs,db);
rtnPram1 = machin;
rtnPram2 = "0";
break;
case 0:
//「パラメータエラー(該当Noなし)」のパラメータを設定する。
rtnPram1 = Parameter[0];
rtnPram2 = "2";
break;
default:
//「パラメータエラー(該当No複数存在)」のパラメータを設定する。
rtnPram1 = Parameter[0];
rtnPram2 = "1";
}
}
//パラメータエラーの場合
if (pramErrFlag != true){
//バッチファイル起動
String command = "/home/test/bin/test.bat " + rtnPram1 + " " + rtnPram2;
Runtime runtime = Runtime.getRuntime();
runtime.exec(command);
response.setStatus(HttpServletResponse.SC_BAD_REQUEST);
}else{
//バッチファイル起動
String command = "/home/test/bin/test.bat " + rtnPram1 + " " + rtnPram2;
Runtime runtime = Runtime.getRuntime();
runtime.exec(command);
response.setStatus(HttpServletResponse.SC_OK);
}
} catch (Exception e) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
e.printStackTrace();
logger.error(e);
} finally {
try{
db.dbClose(); ●●●●問題発生箇所
}catch (Exception e) {
response.setStatus(HttpServletResponse.SC_INTERNAL_SERVER_ERROR);
e.printStackTrace();
}
}
No.1
- 回答日時:
記載のコードだけでは、実際にどこでcloseをしているのかが分からないので
例外が発生するcloseより前にどこかでcloseしているのではとしか言いようがない気がします。
ログなどを仕込んで確認してみてはいかかでしょうか。
この回答への補足
isClosed()で調べることが、できました。
DBアクセス時、sql発行時、DBクローズ時の前で調べましたが、クローズはしていませんでした。。。
ご回答ありがとうございます。
ログに出力して確認したいと考えては、いるのですがコネクションの状態等をどのようにしたら出力できるかがわからなくて困っております。
出力方法をご存知でしたら教えて頂けますでしょうか。
よろしくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP DBのハッシュ化したパスワードをpassword_verifyで戻し照合したのですが上手く行きません 2 2023/02/06 13:24
- Visual Basic(VBA) ACCESS DAO で不要なテーブルのフィールド(列)の削除 4 2022/06/23 12:13
- 情報処理技術者・Microsoft認定資格 応用情報処理技術者試験のシステム利用率の計算について 2 2022/03/28 07:43
- その他(プログラミング・Web制作) laravel 本番環境でメールが送れません。 1 2023/02/17 17:57
- PHP PHP一覧表示した項目にリンクをはりたい 1 2023/07/12 17:08
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- Access(アクセス) アクセス テーブルの空白を変数に置換するボタンが作りたい 4 2022/07/08 11:19
- Access(アクセス) 実行時エラー3131 FROM 句の構文エラーです について 7 2022/06/13 15:45
- Excel(エクセル) VBAのエラーが直せません 4 2023/06/12 22:10
- Visual Basic(VBA) データベースから絞り込んでデータを読み込み 1 2023/02/21 19:51
関連するカテゴリからQ&Aを探す
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Eclipseで、プロジェクト名のと...
-
タグが閉じてないというエラー...
-
JAVAでアルファベットを数...
-
シンボルが見つかりませんとい...
-
構文エラーのやり直しについて
-
Javaのエラーについてです
-
JSP NullPointerException
-
コンパイル時にエラーが出てし...
-
java return文を指定できません。
-
arraylistの呼び出し
-
jspのファイルでエラーが出る
-
JSPの表示時エラー
-
漢字の読みを表示するプログラム
-
正規表現で入力チェックするには。
-
JSP/サーブレットで一般的な入...
-
tomcat起動時エラー
-
重複jarの調査の仕方
-
メインクラス○○.classが見つか...
-
Eclipseで次のエラー箇所にジャ...
-
java.lang.StackOverflowErrort...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
Eclipseで、プロジェクト名のと...
-
シンボルが見つかりませんとい...
-
タグが閉じてないというエラー...
-
Javaのエラーについてです
-
エラー:org.springframeworkが...
-
tomcat起動時エラー
-
JSP内でString型からint型に変...
-
コンパイル時にエラーが出てし...
-
構文エラーのやり直しについて
-
Eclipseで次のエラー箇所にジャ...
-
eclipseをバージョンアップした...
-
「型 ArrayList は総称ではあり...
-
JSP NullPointerException
-
Eclipseの環境について
-
JBossについて
-
eclipseでのsvn認証エラー回避方法
-
JSPのIF文を教えて下さい
-
eclipseでのライブラリの追加に...
-
致命的: StandardServer.await:...
-
Buttonを配列とすることができ...
おすすめ情報