我在contextcat文件中的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中启用此功能的任何其他属性?
由于
答案 0 :(得分:1)
您需要指定一个url属性,允许连接连接到DB