【问题标题】:JDBC Connection pool configuration in Tomcat 7Tomcat 7 中的 JDBC 连接池配置
【发布时间】:2015-08-12 21:08:36
【问题描述】:

我在我们的 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 才能成功建立与数据库的连接?在典型的生产环境中,如果 DB 因任何原因关闭并被恢复,应用服务器是否也需要重新启动。我认为,这不是必需的。

我是否错过了 Context.xml 中启用此功能的任何其他属性?

谢谢

【问题讨论】:

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

标签: jdbc tomcat7 connection-pooling


【解决方案1】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-13
    • 2012-03-02
    • 2014-12-20
    • 1970-01-01
    • 1970-01-01
    • 2012-07-12
    相关资源
    最近更新 更多