配置c3p0连接池,启动错误。
spring中c3p0配置xml代码:
项目启动时报以下错误信息:
Pool thread stack traces:
Thread[C3P0PooledConnectionPoolManager[identityToken->1hge1648v7x7xsqhft1n|1e3a43]-HelperThread-#1,5,main]
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:129)
com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2428)
com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:590)
com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1069)
com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2031)
com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:146)
com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:195)
com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:184)
com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:200)
com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1086)
com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1073)
com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:44)
com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1810)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:648)
Thread[C3P0PooledConnectionPoolManager[identityToken->1hge1648v7x7xsqhft1n|1e3a43]-HelperThread-#0,5,main]
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:129)
com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2428)
com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:590)
com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1069)
com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2031)
com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:146)
com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:195)
com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:184)
com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:200)
com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1086)
com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1073)
com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:44)
com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1810)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:648)
Thread[C3P0PooledConnectionPoolManager[identityToken->1hge1648v7x7xsqhft1n|1e3a43]-HelperThread-#2,5,main]
java.net.SocketInputStream.socketRead0(Native Method)
java.net.SocketInputStream.read(SocketInputStream.java:129)
com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:113)
com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:160)
com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:188)
com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2428)
com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:590)
com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1069)
com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2031)
com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718)
com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:46)
sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
java.lang.reflect.Constructor.newInstance(Constructor.java:513)
com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:302)
com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282)
com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:146)
com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:195)
com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:184)
com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:200)
com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1086)
com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1073)
com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:44)
com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1810)
com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:648)
解决办法:
更改配置文件里的最大连接数和初始化连接数大小:
xml代码:
数据库的连接数是有限的,每次应用启动C3p0都会占用数据库的连接来填充C3p0的连接池,而当数据库的资源被占光时就会因为无法获得共享资源而报死锁。
相关推荐
本篇文章将详细讲解如何在iBatis中集成c3p0数据库连接池,以及c3p0的基本配置和使用。 iBatis是一个轻量级的持久层框架,它允许开发者将SQL语句直接写在配置文件中,方便灵活。而c3p0则是一个开源的JDBC连接池,它...
在这个“osgi数据库连接demo”中,我们将探讨如何在OSGi环境中配置C3P0作为Oracle数据库连接池,并集成iBATIS作为数据访问层。 首先,C3P0是一个开源的JDBC连接池,它提供了一些额外的功能,如自动管理数据库连接、...
Spring+IbatIS项目,在案例项目中不只是对CURD的操作,主要是在配置文件中介绍了怎么配置链接迟,这个项目使用的是C3P0连接池,相应的还有.txt文件分析。部署到eclipse或者是myeclipse中修改jdbc.properties文件就...
与C3P0、DBCP、HikariCP等其他连接池相比,Proxool在小型项目或测试环境中表现出色,尤其适合那些对资源管理和性能调整有特定需求的场景。 **二、Proxool的工作原理** Proxool维护了一个连接池,当应用程序需要...
例如,它可以与C3P0、DBCP等连接池配合使用。 4. 参数映射与结果映射:Ibatis提供了强大的参数映射和结果映射机制,能够自动将Java对象与SQL语句中的参数和查询结果进行匹配。通过`<parameterMap>`和`<resultMap>`...
针对不同数据库,可能需要配置不同的连接池实现,如 HikariCP、C3P0 或者 DBCP。 5. **驱动程序管理**:在项目中,需要为每种数据库添加对应的 JDBC 驱动依赖,并在配置中指定正确的驱动类名。 6. **事务管理**:...
1. 数据库连接池的配置:确保数据库连接池配置正确,如Druid、C3P0等。 2. 错误处理:当出现SQL错误或配置错误时,Ibatis会抛出异常,要善于利用日志工具分析错误信息。 3. 关闭SqlSession:操作完数据库后,记得...
**Proxool源码分析** Proxool是一个开源的、基于Java的数据库连接池,它在2003年由iBatis(现在...此外,通过对比其他知名的数据库连接池,如C3P0、HikariCP、Druid等,可以进一步拓宽对数据库连接池设计思路的认识。
5. **数据库连接**:配置数据库连接池,如C3P0或DBCP,并在iBatis的配置文件中指定数据源。 6. **测试与调试**:编写JUnit测试用例验证各层功能,确保正常工作。 通过这样的配置,开发者可以利用SSI框架快速开发出...
1. **配置数据源**:在Spring的配置文件中,你需要定义一个数据源,这通常是一个连接池,如Apache的DBCP或C3P0。 ```xml <property name="driverClassName" value="com.mysql.jdbc.Driver"/> ...
1. 数据源配置:在Struts应用中,通常会通过Apache Commons DBCP或C3P0等连接池管理数据库连接。在`struts-config.xml`或`web.xml`中配置数据源,包括数据库URL、用户名、密码以及连接池参数等。 2. DAO(Data ...
为了解决这个问题,Java提供了数据库连接池,如Apache Commons DBCP、C3P0、HikariCP等。数据库连接池可以预先创建并维护一定数量的数据库连接,应用程序需要时可以从池中获取,用完后归还,这样可以大大提高效率。 ...
15. **其他工具和技术**:如Maven多模块构建,SVN版本控制,MySQL数据库,C3P0连接池,Hibernate的Valida注解,Jquery前端校验,Redis集群缓存,Solr全文检索,ActiveMQ消息队列,SpringAOP行为记录,EasyUI后台界面...
【多文件上传】技术在现代Web应用中...例如,通过`<context:property-placeholder>`标签加载外部属性文件,`<bean>`标签定义数据源(`dataSource`),并使用`c3p0`连接池管理数据库连接。 ```xml <!-- 数据源配置 --> ...
同时,数据库连接池如C3P0、DBCP或Apache Tomcat内置的连接池也应配置好。还需要在数据库中创建存储过程。 2. **创建存储过程**: 在MySQL、Oracle、SQL Server等数据库中编写存储过程。例如,一个简单的存储过程...
- **c3p0.jar**:C3P0是一个开放源代码的JDBC连接池,被许多框架如Hibernate用作数据源管理,优化数据库连接复用。 - **commons-pool.jar**, **commons-dbcp.jar**:Apache Commons下的连接池组件,主要用于管理...
- **数据库连接管理**:MyBatis 支持与多种数据库连接池集成,如 C3P0 和 DBCP,以提高系统的性能和效率。 - **SQL 语句配置**:MyBatis 使用 XML 映射文件或注解来定义 SQL 语句,将 SQL 与 Java 代码分离,提高了...
5. **提供数据库连接池**:内置了多种高效的数据库连接池实现,如DBCP、C3P0等。 6. **事务控制**:可以配置事务管理器来管理事务,也可以与Spring集成由Spring统一管理事务。 ### 安装与配置 1. **环境准备**: ...
2. **JDBC技术**:理解数据库连接、SQL执行、结果集操作,以及连接池技术,如C3P0和DBCP。 3. **HTML & CSS & JavaScript**:学习网页开发基础,包括HTML布局、CSS样式和JavaScript脚本,以及JS常用模板和后台管理...
<bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource"> <!-- 数据源属性配置... --> <!-- 配置SqlSessionFactoryBean --> <!-- 自动扫描Mapper接口 --> ``` 在上述...