2

我在 spring3 项目中工作。当我运行我的代码时,有时我会为某些特定功能获得此 Jdbc 连接异常,但其他功能工作得很好。而且这个异常并没有重复发生,但有时,所以我不知道错误在哪里。请帮助我摆脱这个问题。

<[weblogic.servlet.internal.WebAppServletContext@1b6e978 - appName:'_auto_generated_ear_',名称:'ae',上下文路径:'/ae'] ServletException 的根本原因。org.springframework.jdbc.CannotGetJdbcConnectionException:无法获得 JDBC 连接;嵌套异常是 java.sql.SQLException:侦听器拒绝连接并出现以下错误:ORA-12519,TNS:找不到合适的服务处理程序客户端使用的连接描述符是:org.springframework.jdbc 的 localhost:1521:XE。 datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:573) at 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:侦听器拒绝连接并出现以下错误:ORA-12519,TNS:找不到合适的服务处理程序客户端使用的连接描述符是:localhost:1521:XE at 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) 被截断。查看日志文件以获取完整的堆栈跟踪 请参阅日志文件以获取完整的堆栈跟踪 java.sql.SQLException:侦听器拒绝连接并出现以下错误:ORA-12519,TNS:找不到合适的服务处理程序客户端使用的连接描述符是:localhost:1521:XE at 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) 被截断。查看日志文件以获取完整的堆栈跟踪 请参阅日志文件以获取完整的堆栈跟踪 java.sql.SQLException:侦听器拒绝连接并出现以下错误:ORA-12519,TNS:找不到合适的服务处理程序客户端使用的连接描述符是:localhost:1521:XE at 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) 被截断。查看日志文件以获取完整的堆栈跟踪 找不到合适的服务处理程序 客户端使用的连接描述符是: localhost: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) 在 oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:420) 在 oracle.jdbc.driver.T4CConnection.(T4CConnection.java: 165) 被截断。查看日志文件以获取完整的堆栈跟踪 找不到合适的服务处理程序 客户端使用的连接描述符是: localhost: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) 在 oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:420) 在 oracle.jdbc.driver.T4CConnection.(T4CConnection.java: 165) 被截断。查看日志文件以获取完整的堆栈跟踪 387) 在 oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:420) 在 oracle.jdbc.driver.T4CConnection.(T4CConnection.java:165) 处被截断。查看日志文件以获取完整的堆栈跟踪 387) 在 oracle.jdbc.driver.PhysicalConnection.(PhysicalConnection.java:420) 在 oracle.jdbc.driver.T4CConnection.(T4CConnection.java:165) 处被截断。查看日志文件以获取完整的堆栈跟踪

4

1 回答 1

5

该症状有两个常见原因

  • 连接池耗尽,打开的活动连接太多,下一个客户端无法获取。这可能是连接池泄漏
  • 连接池设置不会定期/借用时测试空闲连接,因此当 TCP 连接被操作系统截断时(例如:因为操作系统认为它空闲无所事事),池仍然认为它是有效的
于 2013-07-18T11:54:12.680 回答