我开发的软件,是访问oracle数据库的,而且配置了连接数,如果
#### 初始化连接数 ####
jdbc.initPoolSize=2#### 最少连接数 ####
jdbc.minPoolSize=2#### 最多连接数 ####
jdbc.maxPoolSize=20但是,这几天,我的软件一直在报错,如:
2012-09-12 01:00:00,104 WARN [com.mchange.v2.c3p0.impl.NewPooledConnection] - [c3p0] Another error has occurred [ java.sql.SQLException: 关闭的连接 ] which will not be reported to listeners!
java.sql.SQLException: 关闭的连接其实,我这个软件先前是很正常的,就是最近软件和oracle移植到新的服务器上后,才出现这样的情况,我在猜想,是不是oracle服务器端把连接数改小了,当软件要连接oralce过多的时候,拒绝了我的软件的访问哦?

解决方案 »

  1.   

    是在用c3p0在连接池里创建一个新的连接时,报的错。你监控分析下一下几个问题:
    1、你创建的连接用完后有close吗
    2、检查你c3p0设置允许的最大连接数
    3、查看当前Oracle允许的最大连接数还有你这个错误是一直报直接导致软件不能使用,还是间歇性的报,软件还能使用?
    如果是间歇性的报,你还可以检查下你获取连接的方式,很可能是读取缓存连接的问题,如果是这样,在不考虑性能的情况下,你可以将获取方式更改为直接创建连接,而不是去读取缓存的连接。