当并发量大的时候,C3P0连接池会出现如下异常信息:
Caused by: java.sql.SQLException: An attempt by a client to checkout a Connection has timed out.
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:106)
at com.mchange.v2.sql.SqlUtils.toSQLException(SqlUtils.java:65)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:527)
at com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:128)
at org.springframework.jdbc.datasource.DataSourceUtils.doGetConnection(DataSourceUtils.java:113)
at org.springframework.jdbc.datasource.DataSourceUtils.getConnection(DataSourceUtils.java:79)
... 5 more
Caused by: com.mchange.v2.resourcepool.TimeoutException: A client timed out while waiting to acquire a resource from com.mchange.v2.resourcepool.BasicResourcePool@2020851 -- timeout at awaitAvailable()
at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1317)
at com.mchange.v2.resourcepool.BasicResourcePool.prelimCheckoutResource(BasicResourcePool.java:557)
at com.mchange.v2.resourcepool.BasicResourcePool.checkoutResource(BasicResourcePool.java:477)
at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool.checkoutPooledConnection(C3P0PooledConnectionPool.java:525)
... 8 more
解决方案就是在配置文件里把:
<!--当连接池中的连接耗尽的时候c3p0一次同时获取的连接数。Default: 3 -->
<property name="acquireIncrement" value="5"/>
适当的增加一次性获得的连接数目方可解决此问题。
分享到:
相关推荐
C3P0连接池是一个开源的Java数据库连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Java应用程序中,数据库连接的创建和销毁是耗时操作,而连接池则可以有效地管理这些连接,避免频繁地创建和...
6. **异常处理**:C3P0具有完善的异常处理机制,当数据库连接出现问题时,可以及时反馈错误信息,并尝试恢复连接。 7. **JNDI集成**:C3P0可以被注册到JNDI服务中,使得应用可以通过JNDI查找来获取数据源,方便了...
C3P0连接池是Java开发中常用的数据库连接池组件,它可以帮助开发者高效管理数据库连接,提高系统的性能和稳定性。本压缩包包含了两个关键的JAR文件:mchange-commons-java-0.2.19.jar和c3p0-0.9.5.5.jar,它们是C3P0...
在给定的"**C3P0连接池jar包.zip**"中包含的"c3p0-0.9.5.2.jar"是C3P0的一个版本,用于解决特定的问题,例如"DEBUG -- CLOSE BY CLIENT STACK TRACE"。 这个错误信息"DEBUG -- CLOSE BY CLIENT STACK TRACE"通常...
2. **连接自动测试**:在连接分配给应用程序前,C3P0会进行有效性检查,确保分配的连接是可用的,防止因数据库连接异常导致的程序错误。 3. **并发控制**:C3P0提供了线程安全的连接管理机制,支持多线程环境下的...
**c3p0数据库连接池详解** c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。c3p0的主要功能是管理数据库连接,通过复用已存在的连接来提高数据库访问效率,减少系统资源...
C3P0是一个开源的JDBC连接池,它与Hibernate一起发布,并提供了实现了JDBC3和JDBC2扩展规范的Connection和Statement池的DataSources对象。C3P0连接池的配置涉及到多个方面,用于优化数据库连接的创建、管理和维护。 ...
通过阅读该文章,开发者可以更好地理解和解决C3p0连接池在实际应用中可能出现的各种问题,提升系统的稳定性和效率。同时,了解C3p0的源码也有助于更深层次的理解其工作原理,便于定制化配置或优化。
本文将重点探讨Hibernate与c30p连接池在SQL Server 2000中的配置方法及如何解决可能出现的连接错误问题。 #### 二、问题描述 在配置Hibernate与c3p0连接池时,可能会遇到诸如`ConnectionReset! Broken pipe!`等...
标题 "ibatis-2.3.0.677增加对c3p0连接池的支持" 描述了MyBatis框架的一个更新,其中包含了对c3p0数据库连接池的集成。MyBatis是一个轻量级的Java持久层框架,它允许开发者将SQL语句直接嵌入到Java代码中,提供了比...
C3P0连接池是一个开源的Java数据源和JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。C3P0库被设计用来提高数据库连接的效率和性能,通过管理数据库连接的生命周期,避免了频繁创建和关闭...
此版本中,除了c3p0的核心库外,还依赖于mchange-commons-java-0.2.3.4.jar,这是一个由Miguel Grinberg开发的通用Java库,提供了c3p0连接池所需的辅助工具类和异常处理机制。 **c3p0连接池的功能与优点** 1. **...
6. **异常处理**:当数据库连接出现问题时,C3P0可以提供详细的错误信息和日志,帮助开发者定位问题。 **C3P0的依赖库**: - `mchange-commons-0.2.jar`:这是C3P0的一个基础库,包含了C3P0运行所需的通用工具类和...
在开发JavaWeb应用程序时,...综上所述,解决"用c3p0连接池连接数据库登录页面跳转不了"的问题需要检查C3P0配置、数据库连接管理、登录验证逻辑以及页面跳转的实现。通过逐步排查,我们应该能找出问题所在并进行修复。
7. **异常处理**:当连接池中没有可用连接或者遇到其他错误时,C3P0会抛出相应的异常,帮助开发者快速定位问题。 8. **与其他框架的集成**:C3P0可以与许多流行的Java Web框架,如Spring、Hibernate等无缝集成,...
5. **异常处理**:C3P0 内置了错误和异常处理机制,可以捕获并适当地处理数据库连接异常,避免应用程序因数据库问题而崩溃。 6. **事务支持**:C3P0 支持自动和手动提交/回滚事务,简化了数据库操作的事务管理。 7...
- **异常处理**:C3P0库对数据库操作的异常进行了封装,提供了更友好的错误处理方式。 - **池化对象(PoolableConnection, PooledConnection)**:C3P0通过池化数据库连接,减少了每次请求新连接时的开销,提高了...
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在这个场景中,我们将深入探讨如何使用C3P0连接池来与MySQL数据库进行交互,并结合log4j进行日志记录。 首先,要使用C3P0...
这个压缩包“commons-dbutils-1.4(用于连接池)C3P0.rar”包含了与数据库连接池C3P0相关的组件,以及Apache Commons DBUtils的版本1.4。C3P0是一个流行的、开源的JDBC连接池,它实现了数据源和JNDI绑定,为Java应用...
1. **异常处理**:c3p0提供了丰富的异常类,如`C3P0Exception`,帮助开发者识别和处理连接池相关的错误。 2. **监控**:c3p0内置了统计和监控机制,可以通过`getStatistics()`获取池的状态信息,也可以通过JMX...