Javaに関する様々な情報をご紹介します。

Javaに関する様々な情報をご紹介します。
評価

0

Tomcat+SQLSERVERでコネクションが解放できません

現在、Tomcat6とSQLSERVER2005とJAVA(1.6.0_07)の環境でWEBアプリを作成しています。

Tomcatのcontext.xmlに
<Resource
name="jdbc/AppDataSource"
auth="Container"
type="javax.sql.DataSource"
maxWait="1"
maxActive="10"
url="jdbc:sqlserver://WINSQL:1433;databaseName=test;SelectMethod=cursor"
driverClassName="com.microsoft.sqlserver.jdbc.SQLServerDriver"
maxIdle="2"
username="sa"
password=""
/>
と記述し、JAVA側で
DataSource ds = (DataSource) context.lookup("java:/comp/env/jdbc/niDataSource");
conn = ds.getConnection();
とデータソースからの接続をしています。
サーブレットの最後には取得したコネクションをコミットしてクローズしていますが、
何度かページをリロードすると、コネクションが取得できなくなります。
コネクションプーリングが有効になっているのはわかるのですが、解放しているのに再利用が出来なくなってしまっているようです。
xmlの設定情報や、SQLSERVER側に何か間違いがあるのでしょうか?
それとも、コード側に問題があるのでしょうか?

同じコードで、xmlを書き換えて、PostgreSQLで試したときはちゃんと再利用できていました。

ヒントでも良いので、教えてください。
お願いします。

2

回答

6415

閲覧

2件の回答

評価

0

いやいや
コネクションcloseしちゃダメだよ
コネクションプーリングしているのにクローズしたら
最初10個のコネクションが
1個ずつ減っていちゃうじゃない
最後には0個になっているヨ

評価

0

ご回答ありがとうございます。

コネクションが解放できない出来ないのではなく、
オープンを2回して一回しかクローズしてなかったので、
単純に最大接続数に達してエラーが出てたみたいです。

質問から6ヶ月以上経過しているので、回答を書き込むことはできません。