org.springframework.jdbc.CannotGetJdbcConnectionException

时间:2013-07-18 10:26:13

标签: java spring

我在spring3项目中工作。当我运行我的代码有时我得到一些特定功能的Jdbc连接异常,但其他功能工作非常好。而且这个例外并没有重复发生,但有时候,所以我无法得到错误的地方。 请帮我解决这个问题。

  

< [weblogic.servlet.internal.WebAppServletContext@1b6e978 - appName:'_ auto_generated_ear_',name:'ae',context-path:'/ ae'] ServletException的根本原因。    org.springframework.jdbc.CannotGetJdbcConnectionException:无法获取JDBC连接;嵌套异常是java.sql.SQLException:Listener拒绝连接时出现以下错误:   ORA-12519,TNS:找不到合适的服务处理程序   客户端使用的连接描述符是:   localhost:1521:XE at 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)       截断。查看日志文件以获取完整的堆栈跟踪   java.sql.SQLException:Listener拒绝连接时出现以下错误:   ORA-12519,TNS:找不到合适的服务处理程序   客户端使用的连接描述符是:   本地主机:1521:XE       at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)       at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)       在oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)       at oracle.jdbc.driver.PhysicalConnection。(PhysicalConnection.java:420)       在oracle.jdbc.driver.T4CConnection。(T4CConnection.java:165)       截断。请参阅日志文件以获取完整的堆栈跟踪

1 个答案:

答案 0 :(得分:4)

这种症状有两个常见原因

  • 连接池已耗尽,打开的活动连接太多,下一个客户端无法获取。这可能是连接池泄漏
  • 连接池设置不会周期性地/在借用时测试空闲连接,因此当OS连接截断TCP连接时(例如:因为操作系统认为它无效而无效),池仍然认为它是有效的