Tomcatのコネクションプーリングを使う方法
まとまった情報が見つからなかったので。
Seasar2ではS2DBCPがコネクションプーリングの機能を提供していますが、
既にTomcatのコネクションプーリングを利用しているようなアプリケーションと共存する場合、
Seasar2を利用しているアプリケーション側で、Tomcatのコネクションプーリングを利用することも可能です。
変更は以外と簡単です。
Contextの下にResourceを登録する例です(Tomcat4.1.x & Oracle)
<Context path="/app" reloadable="false" docBase="app" workDir="app/work" debug="0"> <Resource name="jdbc/MyDB" scope="Shareable" type="javax.sql.DataSource"/> <ResourceParams name="jdbc/MyDB"> <parameter> <name>factory</name> <value>org.apache.commons.dbcp.BasicDataSourceFactory</value> </parameter> <parameter> <name>url</name> <value>jdbc:oracle:thin:@localhost:1521:orcl</value> </parameter> <parameter> <name>driverClassName</name> <value>oracle.jdbc.driver.OracleDriver</value> </parameter> <parameter> <name>username</name> <value>user</value> </parameter> <parameter> <name>password</name> <value>pass</value> </parameter> <parameter> <name>maxWait</name> <value>3000</value> </parameter> <parameter> <name>maxIdle</name> <value>5</value> </parameter> <parameter> <name>maxActive</name> <value>3</value> </parameter> </ResourceParams> </Context>
<!-- <component name="connectionPool" class="org.seasar.extension.dbcp.impl.ConnectionPoolImpl"> <property name="timeout">600</property> <property name="maxPoolSize">10</property> <property name="allowLocalTx">true</property> <destroyMethod name="close"/> </component> <component name="dataSource" class="org.seasar.extension.dbcp.impl.DataSourceImpl"/> -->
<component name="initialContext" class="javax.naming.InitialContext"/> <component name="dataSource" class="org.seasar.extension.j2ee.JndiDataSource"> <arg>initialContext</arg> <arg>"java:comp/env/jdbc/MyDB"</arg> </component>