Tomcat 6 で Spring ベースの Web アプリケーションを実行しています。ここで、Tomcat のデフォルト DBCP の代わりに c3p0 接続プールを使用したいと考えています。したがって、c3p0 ヘルプドキュメントから、データ ソースを次のcontext.xml
ように定義しました。
<Resource name="jdbc/sample" auth="Container"
driverClassName="oracle.jdbc.driver.OracleDriver"
url="jdbc:oracle:thin:@someServer:1551:xyz"
username="userName"
password="pwd"
validationQuery="SELECT 1 FROM dual"
testOnBorrow="true"
testWhileIdle="true"
factory="org.apache.naming.factory.BeanFactory"
type="com.mchange.v2.c3p0.ComboPooledDataSource"
maxPoolSize="20"
minPoolSize="5"
acquireIncrement="1"
/>
さて、ドキュメントによると、次のものを に含める必要がありますweb.xml
。
<resource-ref>
<res-ref-name>jdbc/sample</res-ref-name>
<res-type>javax.sql.DataSource</res-type>
<res-auth>Container</res-auth>
</resource-ref>
には次のものもありますapplicationContext.xml
。
<jee:jndi-lookup id="sampleDataSource" resource-ref="true"
jndi-name="jdbc/sample" />
Tomcatを起動すると、
javax.naming.NameNotFoundException: 名前 jdbc はこのコンテキストにバインドされていません
c3p0 を使用せず、tomcat6 でデフォルトの接続プールを使用しても問題なく動作します。
どんな助けでも大歓迎です。