----请版主手下留情啊,这个问题目前搜索不到,要是能搜索到也不会来讨论区,别带点问题的帖子都当入门提问贴封了隐藏了----
项目中用到C3P0,也不知道什么时候开始发现,web app 在Eclipse或者Netbeans启动后,然后去关闭Tomcat,无法关闭。
异常如下:
信息: Stopping Coyote HTTP/1.1 on http-8888
2008-11-14 14:40:12 org.apache.catalina.loader.WebappClassLoader loadClass
信息: Illegal access: this web application instance has been stopped already. Could not load com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask. The eventual following stack trace is caused by an error thrown for debugging purposes as well as to attempt to terminate the thread which caused the illegal access, and has no functional impact.
java.lang.IllegalStateException
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1246)
Exception in thread "Timer-0" java.lang.NoClassDefFoundError: com/mchange/v2/resourcepool/BasicResourcePool$1DestroyResourceTask
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)
at com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:980)
at java.lang.ClassLoader.loadClassInternal(ClassLoader.java:320)
at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1406)
at com.mchange.v2.resourcepool.BasicResourcePool.destroyResource(BasicResourcePool.java:980)
at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1378)
at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1406)
at com.mchange.v2.resourcepool.BasicResourcePool.cullExpired(BasicResourcePool.java:1462)
at com.mchange.v2.resourcepool.BasicResourcePool.removeResource(BasicResourcePool.java:1378)
at com.mchange.v2.resourcepool.BasicResourcePool.access$1900(BasicResourcePool.java:32)
at com.mchange.v2.resourcepool.BasicResourcePool.cullExpired(BasicResourcePool.java:1462)
at com.mchange.v2.resourcepool.BasicResourcePool$CullTask.run(BasicResourcePool.java:1937)
at com.mchange.v2.resourcepool.BasicResourcePool.access$1900(BasicResourcePool.java:32)
at java.util.TimerThread.mainLoop(Timer.java:512)
at com.mchange.v2.resourcepool.BasicResourcePool$CullTask.run(BasicResourcePool.java:1937)
at java.util.TimerThread.run(Timer.java:462)
at java.util.TimerThread.mainLoop(Timer.java:512)
Caused by: java.lang.ClassNotFoundException: com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask
at java.util.TimerThread.run(Timer.java:462)
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1360)
2008-11-14 14:40:15 org.apache.catalina.loader.WebappClassLoader loadClass
at org.apache.catalina.loader.WebappClassLoader.loadClass(WebappClassLoader.java:1206)
我的C3P0配置文件:
<c3p0-config>
<default-config>
<property name="acquireIncrement">4</property>
<property name="acquireRetryAttempts">10</property>
<property name="acquireRetryDelay">1000</property>
<property name="autoCommitOnClose">false</property>
<property name="automaticTestTable">TestConsult_pro</property>
<property name="breakAfterAcquireFailure">true</property>
<property name="checkoutTimeout">10000</property>
<!-- property name="idleConnectionTestPeriod">60</property-->
<property name="maxStatementsPerConnection">10</property>
<property name="initialPoolSize">4</property>
<property name="maxIdleTime">30</property>
<property name="maxPoolSize">64</property>
<property name="numHelperThreads">10</property>
<!-- property name="propertyCycle">300</property-->
<property name="testConnectionOnCheckout">false</property>
<property name="testConnectionOnCheckin">false</property>
<property name="usesTraditionalReflectiveProxies">false</property>
</default-config>
</c3p0-config>
JavaEye上搜索了相关问题,没有什么收获,不知有JavaEye网友碰到过没有。
这位GG(http://japi.iteye.com/blog/243702)倒是收集了相关C3P0的一些错误解决方案,基本都试过了。
由于对C3p0也没有过多的了解,这次项目也第一次使用,目前丈二和尚摸不着头脑,找不到问题所在,请大家帮忙分析下。
分享到:
相关推荐
本示例将详细介绍如何使用DBCP(Database Connection Pool)、c3p0以及Tomcat内置的数据源来实现数据库连接池的配置与使用。 **DBCP(Database Connection Pool)** DBCP是Apache软件基金会的Jakarta项目下的一个子...
C3P0的核心功能包括连接池管理、自动关闭空闲连接、连接测试和重试策略等,这些特性有助于防止因数据库连接耗尽而导致的系统故障。 2. **C3P0的主要特点** - **连接池管理**:C3P0能有效地管理数据库连接,避免...
5. **异常处理**:c3p0能够检测到数据库连接的异常,并自动关闭损坏的连接,确保应用的稳定运行。 除了c3p0,还有其他著名的数据库连接池实现,例如: 1. **Apache DBCP**:Apache Commons DBCP是Apache软件基金会...
6. 集成性:C3P0可以方便地与各种Java应用服务器如Tomcat、Jetty等集成,同时也被流行的数据持久化框架如Hibernate和Spring所支持。这使得C3P0成为许多企业级应用的首选数据库连接池解决方案。 在使用C3P0时,...
在Web应用中,c3p0常与Servlet容器(如Tomcat)结合使用,通过容器的JNDI服务管理数据源。这样,多个应用组件可以共享同一个数据源,提高资源利用率。 **五、c3p0版本及更新** 在给定的压缩包文件`c3p0-0.9.2-pre1...
c3p0由Miquel Darmoni开发,其设计目标是提供更高效的连接管理,减少数据库连接的创建和关闭带来的性能损耗,同时提供了一些高级特性,如自动测试连接、空闲连接检测、连接池的大小控制等。 c3p0的核心组件包括: ...
- **自动管理数据库连接**:c3p0能够自动创建、验证、回收和关闭数据库连接,有效避免了手动管理连接的繁琐工作。 - **连接池优化**:通过连接池技术,c3p0可以复用已存在的数据库连接,减少创建和销毁连接的开销...
**压缩包文件“Tomcat配置C3P0所需要的包”** 可能包含的是Tomcat服务器中配置c3p0所需的相关文件,比如c3p0的jar包和其他依赖。在Tomcat环境中,配置c3p0可能还需要在`context.xml`或`server.xml`文件中添加相应的...
在Java应用程序中使用C3P0可以提高数据库连接的效率和管理,避免频繁创建和关闭数据库连接导致的资源浪费。以下是关于C3P0的一些关键知识点: 1. **什么是JDBC连接池**:JDBC连接池是一种管理数据库连接的技术,它...
2. **自动管理连接**:c3p0能够自动检测并修复失效的数据库连接,避免因长时间无操作导致的连接超时问题。 3. **自动扩展**:当应用程序需要更多连接时,c3p0可以自动增加连接池的大小,而在空闲时则会减少连接数量...
2. **创建数据源配置**:在Tomcat的`context.xml`或应用的`web.xml`中定义C3P0数据源,如下: ```xml type="com.mchange.v2.c3p0.ComboPooledDataSource" driverClass="com.mysql.jdbc.Driver" jdbcUrl="jdbc...
2. **自动检测与回收**:c3p0能够定期检查连接的有效性,如果发现有连接超时或异常,会自动进行关闭和重新创建,确保连接池中的每一个连接都能正常工作。 3. **连接池扩展性**:支持JNDI查找,便于在应用服务器如...
### DBCP与C3P0连接池配置详解 #### 一、DBCP与C3P0概述 在Java开发中,数据库连接池是提高应用性能的重要手段之一。通过复用预分配好的数据库连接资源,避免了频繁创建和销毁数据库连接所带来的性能开销。Apache ...
Tomcat 5.0支持多种连接池实现,其中最常见的是Apache的Proxool和C3P0,以及内置的JDBC通用连接池(Commons DBCP)。我们以C3P0为例,详细说明配置步骤: 1. **添加依赖**: 首先,需要将C3P0的jar文件添加到Tomcat...
在Tomcat中,我们通常使用内置的连接池实现,如Apache Commons DBCP或C3P0。 **配置步骤:** 1. **添加依赖库**:在`$CATALINA_HOME/lib`目录下,我们需要添加对应的jar包文件,这可能包括`commons-dbcp.jar`...
3. `<property name="hibernate.c3p0.timeout">120</property>`:连接超时时间,防止因长时间未释放的连接导致资源浪费。 4. `<property name="hibernate.c3p0.max_statements">100</property>`:预编译SQL语句的...
在`c3p01`、`c3p02`和`c3p03`文件中,可能分别包含C3P0的不同版本或配置说明。 5. **Tomcat内置的连接池**: Tomcat服务器本身也内置了一个连接池实现,通常称为Tomcat JDBC连接池。它提供了高性能、轻量级、完全...
3. **数据源类型**:Tomcat支持多种数据源实现,如Apache Commons DBCP和C3P0等。这些库提供了连接池管理,确保了连接的复用和有效管理,避免了频繁创建和关闭数据库连接导致的性能问题。 4. **连接参数**:配置...
8. **数据源优化**:使用连接池如C3P0或HikariCP,提高数据库连接的复用率。 9. **编码和解码优化**:使用高效的字符编码如UTF-8,避免在处理字符串时出现性能瓶颈。 10. **应用代码优化**:遵循最佳实践,避免...
在Tomcat中,常见的连接池实现有Apache的DBCP、C3P0、HikariCP等。其中,HikariCP以其高性能和低延迟特性,成为了许多开发者的首选。 3. 配置数据源 在Tomcat中配置数据源通常涉及以下几个步骤: - 添加数据库驱动...