浏览 1281 次
|
锁定老贴子 主题:非常奇异的数据库连接reject异常
该帖已经被评为新手帖
|
|
|---|---|
| 作者 | 正文 |
|
时间:2007-02-08 关键字: 奇怪的数据库连接异常
在实际项目开发测试过程中发现如下问题:测试一段时间后数据库拒绝连接抛出下面第二条中的异常,查看数据库,发现因为数据库的连接session很多,有时候达到300,并且都是inactive状态。
在我们的程序中是都是用spring的 JDBCTemplate,并且查看了spring的excute方法,它每次使用后都会关闭连接。为什么关闭的连接在数据库里面不会回收?? 这个问题头痛了好几天了,现在还没解决,请们给偶出出主意。。。。。。。 下面是问题描述及其问题出现的操作说明 1 数据库连接及其连接池配置 <bean id="dataSource" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close"> <property name="driverClassName"><value>${jdbc.driverClassName}</value> </property> <property name="url"><value>${jdbc.url}</value></property> <property name="username"><value>${jdbc.username}</value></property> <property name="password"><value>${jdbc.password}</value></property> <property name="maxActive"><value>40</value></property> <property name="maxIdle"><value>30</value></property> <property name="maxWait"><value>10000</value></property> <property name="defaultAutoCommit"><value>true</value></property> </bean> 2 多次在web应用中执行插入数据操作后,出现如下异常: org.springframework.jdbc.CannotGetJdbcConnectionException: Could not get JDBC co nnection; nested exception is java.sql.SQLException: Io 异常: Connection refused (DESCRIPTION=(TMP=)(VSNNUM=169869568)(ERR=12518)(ERROR_STACK=(ERROR=(CODE=12518) (EMFI=4))(ERROR=(CODE=12560)(EMFI=4)))) java.sql.SQLException: Io 异常: Connection refused(DESCRIPTION=(TMP=)(VSNNUM=169 869568)(ERR=12518)(ERROR_STACK=(ERROR=(CODE=12518)(EMFI=4))(ERROR=(CODE=12560)(E MFI=4)))) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179) at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:333) at oracle.jdbc.driver.OracleConnection.<init>(OracleConnection.java:404) at oracle.jdbc.driver.OracleDriver.getConnectionInstance(OracleDriver.ja va:468) at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:314) at org.apache.commons.dbcp.DriverConnectionFactory.createConnection(Driv erConnectionFactory.java:37) at org.apache.commons.dbcp.PoolableConnectionFactory.makeObject(Poolable ConnectionFactory.java:290) at org.apache.commons.pool.impl.GenericObjectPool.borrowObject(GenericOb jectPool.java:771) at org.apache.commons.dbcp.PoolingDataSource.getConnection(PoolingDataSo urce.java:95) at org.apache.commons.dbcp.BasicDataSource.getConnection(BasicDataSource .java:540) 3 出现异常后查看数据库的session数目:122 4 为了测试,重复以上操作,观察到数据库的session不停的增加,并且其状态都是inactive的; 最初没有配置数据库连接池的最大数,以为是这个问题导致每次insert都重新建立连接,但是设置了最大数后,观察数据库的session还是跟以前一样增加。 待中。。。。。。。。。。。。。。。。。。。。。。。。。 声明:JavaEye文章版权属于作者,受法律保护。没有作者书面许可不得转载。
|
|
| 返回顶楼 | |
|
时间:2007-02-08
应该是connection timeout没有设置!不过dbcp是我见过的bug最多的,虽然jakarta的东西我用了很多,但是只有一个collection比较好,其他的都问题多多!有的自己的Test都跑不完!
|
|
| 返回顶楼 | |
|
时间:2007-02-13
问题解决了,问题虽然不是因为连接池,但是我觉得这个第三方的连接池有些问题。
谢谢大家关注。 |
|
| 返回顶楼 | |
|
时间:2007-03-20
楼上的仁兄,我刚测试了你的,确实存在这个问题,请问你是怎么解决的呀?
|
|
| 返回顶楼 | |
|
时间:2007-04-01
是啊,能否告知是怎么解决的,我也碰到了类似的问题,还没有头绪:(
|
|
| 返回顶楼 | |



