- - PR -
DB接続エラーで困っています(eclipse,JSP)
1
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2005-11-12 16:09
はじめまして、Java初心者と申します。
eclipse3.0でアプリを開発しています。 アプリAからボタン押下でJSPを呼び出して、新規ポップアップ画面を表示し、そこで処理ボタン押下により、DB(SQL Server 2000)へ接続し必要な情報を取得し情報表示しています。 1回目はDB接続に成功し処理は正常終了しますが、2回目以降に処理ボタンを押下するとDB接続エラーが発生します。厳密に言うと、2回目以降でも、しばらく時間を置くと(5分くらい?)処理は正常に行われます。原因がわからず、困っているのですが、アドバイス頂けたら幸いです。 | ||||
|
投稿日時: 2005-11-12 16:19
2 回目から? Connection の Close とか資源の解放などは万全でしょうか? _________________ C# と VB.NET の入門サイト じゃんぬねっと日誌 | ||||
|
投稿日時: 2005-11-12 21:28
出ているエラーを貼り付けてみてはいかがでしょう。
| ||||
|
投稿日時: 2005-11-14 08:42
お返事が遅れまして、申し訳ございません。
エラーメッセージは以下の通りです。 HTTP Status 500 - -------------------------------------------------------------------------------- type Exception report message description The server encountered an internal error () that prevented it from fulfilling this request. exception org.apache.jasper.JasperException: DB接続エラー root cause javax.servlet.ServletException: DB接続エラー | ||||
|
投稿日時: 2005-11-14 10:31
ServletException 自体の root cause ついては表示されていないでしょうか?
JSP や Servlet のトラブルシューティングに慣れていないようでしたらまずスタンドアロンの Java プログラムで再現させてみるのも良いかもしれません。 | ||||
|
投稿日時: 2005-11-15 17:56
お世話になります。
スタンドアロンでは発生しないと思います。と言いますのも、DB接続部分は共通メソッドにしており、同一サーバ上で実行するプログラムでは正常に動作しているからです。今回不具合が発生しているケースでは、呼び出し元と呼び出し先のサーバが異なり、これが今回の事象の原因に関連していると推測しております。 また、資源の解放の件ですが、基本的にはopen/closeを意識せずコーディングしております。DriverManager.getConnectionを利用しております。 ちなみに、明にclose処理を追加してみましたがダメでした。 しばらく、時間を置くと正常に動作するのが不思議です。 | ||||
|
投稿日時: 2005-11-30 09:20
DB接続のメソッドは以下のようにコーディングしており、DriverManager.getConnection()でエラーが発生しております。
1回目は正常動作するのに、2回目以降エラーが出るのが不思議です。 [SQLState]08001 [ErrorCode]0 DriverManager.getConnection()のパラメタは以下の通りです。 jdbc:microsoft:sqlserver://,localhost:1433;DatabaseName=[strDatabaseName],[strUserName],[strPassword] private boolean getConnection() throws Exception { try { objDriver = (Driver)Class.forName(DRIVERCLASS).newInstance(); objConnect = DriverManager.getConnection( URL + strServerName + ":" + strPortNumber + ";DatabaseName=" + strDatabaseName, strUserName, strPassword ); objConnect.setReadOnly(true); objSql = objConnect.createStatement(); (以下略) |
1