Tomcat JDBC Connection Pool
Tomcat7最新版ではデータソースのタイプが2種類提供されている。
- Apache Commons DBCP
- 以前から使用されていたデータソース
- Tomcat JDBC Connection Pool
- Apache Tomcat 7 (7.0.65) - The Tomcat JDBC Connection Pool
- マルチコアに対応
- 高パフォーマンス
- シンプルな実装(DBCPのクラス数は60以上、こちらのコア部分は8)
- interceptorを挟める、独自intercepterも作成可能
- JMXとの連携強化
- XA connectionサポート
- etc...
DBCPとの切替
特に指定をしなければDBCPが使用される。Tomcat JDBCを使用する場合は、JNDI設定のResourceタグにfactory属性を追加する。
<Resource ・・・(略) factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" />
属性名などはほとんど変わっていないので、特殊な設定をしていない限りfactoryを追加するだけでOK。
JDBCドライバの配置場所
こちら
Tomcat 7の新機能で何ができるようになるのか?(番外編):Commons DBCPを超えるTomcat JDBC Poolとは (1/2) - @IT
にはTomcat共通のlibに置かないとダメ、と書いてあるが、Tomcatのドキュメントにはそういう記載は見当たらなかった。
試しに共通libにドライバを入れずに、webアプリの方のWEB-INF/libに置いてみたが動くみたい。
Resourceの記述場所によって違う? ドライバ(DB)によって違う? 実はTomcat JDBCで動いていない?
深追いする時間は無いので動いた状態だけメモ。