Tomcat5.5 + PostgresSQL8.1のコネクションプーリング

以下、設定メモ。


必要になるのは、PostgresSQLのjdbcドライバ。
一応、postgresql-8.1-407.jdbc3.jarをダウンロード。
このファイルは、$CATALINA_HOME\common\lib内に入れておく。
これだけでOK。
あとは、server.xmlの内容とweb.xmlの内容を変更。

サイト名:site
データベース名:appdb
DBユーザ:scot
DBパスワード:pass
DBホスト:192.168.0.000

1.server.xmlの記述
Context部分にResourceプロパティを追加。

<Context
path="/site" docBase="C:\xxx\site" debug="0"
reloadable="true" crossContext="true">
<Resource name="jdbc/postgres" auth="Container"
type="javax.sql.DataSource"
driverClassName="org.postgresql.Driver"
url="jdbc:postgresql://192.168.0.000:5432/appdb"
username="scot"
password="pass"
maxActive="20"
maxIdle="10"
maxWait="-1"/>

赤文字部分は、自分の環境に応じて変更。

2.web.xmlの変更
以下の1文を追加。


postgreSQL Datasource example
jdbc/postgres
javax.sql.DataSource
Container

これでつながるはず。
コネクション部分はこんな感じ。

(中略)
import java.sql.*;
import javax.sql.*;
import javax.naming.*;
(中略)
Connection conn = null;
InitialContext ic = null;
DataSource ds = null;
try{
ic = new InitialContext();
ds = (DataSource)ic.lookup("java:comp/env/jdbc/postgres");
conn = ds.getConnection();
 (なんかDBの処理)
}catch(Exception e){
throw e;
}finally{
if(conn != null){
conn.rollback();
conn.close();
conn = null;
}
}

Tomcat5.5系になってから、commons-dbcpとか、commons-poolとか、commons-poolとかは不要っぽい。
どこのjarファイルを使ってるかっていうと、
$CATALINA_HOME\common\lib内のnaming-factory-dbcp.jar

気づくまでにえらく時間がかかったじょ。
とにかく接続できてヨカタ。。マジで。