我们很难弄清楚定义的属性,minIdle
,maxIdle
等等。
我们在以下设置中看到以下错误
InitialSize=5 maxActive=50 maxIdle=40 maxWait=2000
Caused by: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC Connection; nested exception is org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:80) at org.springframework.jdbc.core.JdbcTemplate.execute(JdbcTemplate.java:1001) at org.springframework.jdbc.core.JdbcTemplate.call(JdbcTemplate.java:1064) ... 36 more Caused by: org.apache.commons.dbcp.SQLNestedException: Cannot get a connection, pool error Timeout waiting for idle object at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:114) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource.java:1044) at org.springframework.jdbc.datasource.lookup.AbstractRoutingDataSource.getConnection(AbstractRoutingDataSource.java:148) at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:111) at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:77) ... 39 more Caused by: java.util.NoSuchElementException: Timeout waiting for idle object at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericObjectPool.java:1134) at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSource.java:106)
这个问题解决了。问题是错误的应用程序代码导致连接泄漏。编写应用程序代码是为了使用Oracle数组类型访问基础本机连接,但管理不当。将代码更改为使用SimpleNativeJdbcExtractor
http://static.springsource.org/spring/docs/2.0.x/api/org/springframework/jdbc/support/nativejdbc/SimpleNativeJdbcExtractor.html
我有一个应用程序,其中DB连接由Spring配置创建(然后传递到hibernate)。以下是spring文件中的默认参数。 然而,在特定的环境中,Oracle DB连接会在一段时间后被网络设置关闭。我们最初认为关闭连接是因为连接处于空闲状态。我们添加了validationQuery,以便定期在服务器上发布查询,这样连接就不会空闲。 即使在上述设置之后,连接仍然会关闭 还观察到,当应用程序空闲2-3
我正在使用DBCP连接池,并创建了一个MBean来在Jconsole中显示连接池的统计信息。我观察到的是,即使应用程序上没有活动(意味着没有页面点击等),连接池统计数据也会显示活动连接。 我们在上面看到的16个虚拟连接并没有降到零。我不知道为什么?有人能解释一下吗? 谢谢
问题内容: 我们看到的情况是,我们的数据库连接由于套接字写入错误而终止: 当然,所有随后的写入连接的尝试都会失败: 在更新代码以捕获此类异常并在发生连接时请求新连接后,该连接再次失败。我是否怀疑每次调用实际上都不在提供新的连接?难道不只是重用已关闭的现有连接吗? 如果我是正确的,那么丢弃旧的连接并请求新的连接的正确方法是什么? 编辑:这是我想知道的更简洁的版本: “ c1 == c2”是正确的说法
使用来自DBCP的BasicDataSource,如果我们执行getConnection()并且在最后一个块中我们关闭连接,它是真的将连接返回到池还是关闭连接。我正在检查的代码片段是这样的 我正在检查BasicDataSource的源代码,并访问了这个包装类以获取连接。 委托对象的类型为java。sql。联系包装器代码调用委托的close方法,该方法将关闭集合,而不是将连接返回到池。这是DBCP的
问题内容: 可用于Java / JDBC的最佳连接池是什么? 我正在考虑2个主要候选人(免费/开源): Apache DBCP- http://commons.apache.org/dbcp/ C3P0- http://sourceforge.net/projects/c3p0 我已经在博客和其他论坛上阅读了很多有关它们的内容,但无法做出决定。 这两个有其他相关选择吗? 问题答案: DBCP已过时
问题内容: 我的环境 Java 5 Spring2.5.5 DBCP数据源 (org.apache.commons.dbcp.BasicDataSource) 的MySQL 类似职位 使用Spring JDBC Oracle设置会话时区 链接 http://www.mysqlfaqs.net/mysql-faqs/General-Questions/How-to-manage-Time-Zone-