Tomcat JBDC 接続プールを参照すると、そこにあるスタンドアロン Java の例を見ると、datasource.getConnection()
クールな接続を使用して接続が取得されます。しかし、finally ブロックでは、 と表示されますcon.close()
。
質問: これを実装するとcon
、最後に I get from datasource が毎回閉じられることは明らかです。これが閉じられると、接続プール メカニズムは新しい接続を取得してプールに追加しますか?
releaseConnection()
プールを閉じるか、他の用途のために開くかをプールが独自に決定できるようにするようなメソッド呼び出しが必要だと思います。
私もこれをやろうとしましたが、これConnectionPool aPool = datasource.createPool();
にはリリース接続のようなものはありませんaPool
。
ここで何かが足りないと思いますか?あなたの助けに感謝。
Tomcat JBDC 接続プールのコード スニペット:
DataSource datasource = new DataSource();
datasource.setPoolProperties(p);
Connection con = null;
try {
con = datasource.getConnection();
Statement st = con.createStatement();
ResultSet rs = st.executeQuery("select * from user");
int cnt = 1;
while (rs.next()) {
System.out.println((cnt++)+". Host:" +rs.getString("Host")+
" User:"+rs.getString("User")+" Password:"+rs.getString("Password"));
}
rs.close();
st.close();
} finally {
if (con!=null) try {con.close();}catch (Exception ignore) {}
}