Tomcat 7中的JDBC连接池配置

Tomcat 7中的JDBC连接池配置,jdbc,tomcat7,connection-pooling,Jdbc,Tomcat7,Connection Pooling,我在我们的context.xml文件中tomcat 7x下添加了以下属性 validationQuery="SELECT 1 FROM DUAL" testOnBorrow="true" logValidationErrors="true" driverClassName="oracle.jdbc.driver.OracleDriver" factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" logAbandoned="true"

我在我们的context.xml文件中tomcat 7x下添加了以下属性

validationQuery="SELECT 1 FROM DUAL"
testOnBorrow="true"
logValidationErrors="true"
driverClassName="oracle.jdbc.driver.OracleDriver" 
factory="org.apache.tomcat.jdbc.pool.DataSourceFactory" 
logAbandoned="true" 
maxActive="50" 
maxIdle="20" 
removeAbandoned="true" 
removeAbandonedTimeout="180"
type="javax.sql.DataSource" 
我关闭了我的Oracle数据库,并试图通过应用程序连接数据库,我也遇到了异常

### Error updating database.  Cause:       org.springframework.jdbc.CannotGetJdbcConnectionException:Could not get JDBC Connection; nested exception is java.sql.SQLException: Listener refused the connection with the following error:
ORA-12505, TNS:listener does not currently know of SID given in connect descriptor
我认为这是一个预期的错误

之后,我带回了Oracle,并尝试通过应用程序连接数据库,而无需重新启动tomcat。我的期望是,应用程序应该能够从池中获得连接并正常工作。然而,我看到

### Cause: java.sql.SQLRecoverableException: Closed Connection
; SQL []; Closed Connection; nested exception is  java.sql.SQLRecoverableException: Closed Connection
是SQLRecoverableException,此处应为。我是否需要重新启动tomcat,以成功建立回数据库的连接?在典型的生产环境中,如果数据库因任何原因关闭并恢复,应用程序服务器是否也需要重新启动。我认为,这不是必须的

我是否遗漏了Context.xml中支持此功能的任何其他属性


谢谢

您需要指定一个允许连接到DB的url属性

嗨,库马尔,我也遇到了同样的问题。你解决了吗?