2013-12-24 4 views
0

Я создал mavenized веб-приложение в java. Если я запустил веб-приложение с помощью подключаемого модуля maven, я могу инициализировать источники данных из пула соединений, а также получить соединение из источников данных. Но когда я развернуть приложение на сервере Tomcat, он смог инициализировать источники данных, но при попытке получить соединение его метание исключения:c3p0 - Запросы пула подключений для разных серверов

java.sql.SQLException: Connections could not be acquired from the underlying database! 
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106) 
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:529) 

Даже я внес изменения в server.xml для ресурсов и ресов-исй в web.xml, но все же я не могу получить связь.

**Server.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> 

Что мне не хватает в этом сценарии при попытке запустить приложение на сервере tomcat?

ответ

0

Свойства, которые вы устанавливаете на свой источник данных, не являются свойствами c3p0 ComboPooledDataSource. например, вы устанавливаете свойство, называемое username. свойство ComboPooledDataSource - user. validationQuery должен быть preferredTestQuery, testOnBorrow должна быть testConnectionOnCheckout, testWhileIdle карты с помощью ненулевого idleConnectionTestPeriod и т.д.

см c3p0's docs для получения полной информации о configuration properties.

Смежные вопросы