java spring c3p0 jdbc 怎么循环插入几十次就挂了

javaspringc3p0jdbc怎么循环插入几十次就挂了
是不是没释放连接
报错好像是连接过多,应该怎么处理
packagecom.tuzuan.test.dao;
importorg.junit.Test;
importorg.springframework.context.ApplicationContext;
importorg.springframework.context.support.ClassPathXmlApplicationContext;
importcom.tuzuan.dao.FileTuZuanDao;
importcom.tuzuan.model.FileTuZuan;
publicclassFileTuZuanDaoImplTest{
privateApplicationContextctx=null;
privateFileTuZuanDaofileTuZuanDao;
{
ctx=newClassPathXmlApplicationContext("applicationContext.xml");
fileTuZuanDao=(FileTuZuanDao)ctx.getBean("fileTuZuanDao");
}
@Test
publicvoidtestSave(){
for(inti=0;i<1000;i++){
FileTuZuanfileTuZuan=newFileTuZuan("jpg","7fd8c3b7d493a53435e6f2a459b4a9e0","a226e30887c65aa124939d5b1fdfcff3",100,500,"/file_tuzuan/2014/11/19","jpg","m_96e753bfb781000001ff20c498e0-副本(4).jpg",12541,1416381592,0);
intfileId=fileTuZuanDao.save(fileTuZuan);
System.out.println(fileId);
}
}
}
警告:com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@2c21ac2a--AcquisitionAttemptFailed!!!Clearingpendingacquires.Whiletryingtoacquireaneedednewresource,wefailedtosucceedmorethanthemaximumnumberofallowedacquisitionattempts(30).Lastacquisitionattemptexception:
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException:Datasourcerejectedestablishmentofconnection,messagefromserver:"Toomanyconnections"
atsun.reflect.GeneratedConstructorAccessor13.newInstance(UnknownSource)
atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(UnknownSource)
atjava.lang.reflect.Constructor.newInstance(UnknownSource)
atcom.mysql.jdbc.Util.handleNewInstance(Util.java:377)
atcom.mysql.jdbc.Util.getInstance(Util.java:360)
atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:956)
atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:935)
atcom.mysql.jdbc.SQLError.createSQLException(SQLError.java:924)
atcom.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1037)
atcom.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2234)
atcom.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2265)
atcom.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2064)
atcom.mysql.jdbc.ConnectionImpl.(ConnectionImpl.java:790)
atcom.mysql.jdbc.JDBC4Connection.(JDBC4Connection.java:44)
atsun.reflect.GeneratedConstructorAccessor11.newInstance(UnknownSource)
atsun.reflect.DelegatingConstructorAccessorImpl.newInstance(UnknownSource)
atjava.lang.reflect.Constructor.newInstance(UnknownSource)
atcom.mysql.jdbc.Util.handleNewInstance(Util.java:377)
atcom.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:395)
atcom.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:325)
atcom.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:146)
atcom.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:195)
atcom.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:184)
atcom.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:200)
atcom.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1086)
atcom.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1073)
atcom.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:44)
atcom.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1810)
atcom.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:648)
蝴蝶刀刀
浏览 408回答 2
2回答

慕工程0101907

已经提示的很明显了:Datasourcerejectedestablishmentofconnection,messagefromserver:"Toomanyconnections"1,增大连接池链接上限;2,增大数据库连接上限;3,使用后的链接及时释放。

红糖糍粑

同ls连接没释放的可能性比较大,建议你看下datasource的状态就一清二楚。DataSourceds=ctx.getBean("datasource");PooledDataSourcepds=(PooledDataSource)ds;System.err.println("空闲的连接:"+pds.getNumIdleConnectionsDefaultUser());System.err.println("使用中的连接:"+pds.getNumBusyConnectionsDefaultUser());
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript