我正在spring3项目中工作。当我运行代码时,有时我会因为某些特定功能而收到此Jdbc Connection Exception,但其他功能运行得很好。而且此异常不是重复发生的,而是有时发生的,所以我无法弄清错误的出处。
请帮助我解决这个问题。
org.springframework.jdbc.CannotGetJdbcConnectionException:无法获取JDBC连接。嵌套的异常是java.sql.SQLException:侦听器拒绝连接并出现以下错误:
ORA-12519,TNS:找不到合适的服务处理程序
客户端使用的连接描述符为:
localhost:1521:XE在org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80)
在org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:573)
在org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:637)
在org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:666)
在org.springframework.jdbc.core.JdbcTemplate.query(JdbcTemplate.java:674)
被截断了。请参阅日志文件以获取完整的stacktrace
java.sql.SQLException:侦听器拒绝连接,并出现以下错误:
ORA-12519,TNS:找不到合适的服务处理程序
客户端使用的连接描述符为:
本地主机:1521:XE
在oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)
在oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)
在oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)
在oracle.jdbc.driver.PhysicalConnection。(PhysicalConnection.java:420)
在oracle.jdbc.driver.T4CConnection。(T4CConnection.java:165)
被截断了。请参阅日志文件以获取完整的stacktrace
最佳答案
该症状有两个常见原因
连接池已耗尽,打开了太多活动连接,下一个客户端无法获取它。这可能是连接池泄漏
连接池设置不会定期/借用测试空闲连接,因此,当OS截断TCP连接时(例如:因为OS认为它处于空闲状态,什么也不做),该池仍然认为它是有效的