得到以下错误"无法获得连接,池错误超时等待空闲对象"

时间:2014-05-08 09:10:30

标签: java oracle tomcat6 apache-commons-dbcp

当iam登录我的应用程序时,我收到以下错误。

Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.tomcat.dbcp.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object
    at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:82)
    at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:572)

最近我们将应用程序从一个环境转移到另一个环境,昨天我们遇到了上述错误。我已经在互联网上进行了研究,每个人都建议检查连接的关闭,但我已经检查了我的代码并且所有连接都已正确关闭

还有其他可能导致此问题的原因吗?我们是否必须在DB中更改oracle安装参数?或者server.xml中的任何配置都可以使用?

感谢您的帮助。

2 个答案:

答案 0 :(得分:0)

Oracle安装参数?不,我不这么认为。

根据您发布的内容几乎无法回答,所以这里有几个问题:

  1. 您是如何设置JNDI连接池的?
  2. 您的应用是否承受异常沉重的负担?游泳池可以用尽吗?
  3. 是否有任何长时间运行的线程挂在连接上的时间太长了?
  4. 解决问题的最佳方法是分析您的应用。

答案 1 :(得分:0)

这里最有可能的问题是使用的基础数据库版本已更改或正在使用的jdbc驱动程序已过时。

我从10g升级到11g时遇到了这些问题。升级DB时,还需要升级oracle驱动程序。