- 浏览: 117613 次
- 来自: ...
文章分类
最新评论
-
x影千绝:
...
JDBC addbatch批量处理数据时有最大值限制 -
hunnuxiaobo:
为什么呢?
JDBC addbatch批量处理数据时有最大值限制 -
天涯海角tour:
是啊? 我在7.1下就装不上jbpm4.4,按你这着方法
MyEclipse7.1插件安装 -
t8500071:
原来exec后是子进程,怪不得我怎么看都不像是一个完全独立的进 ...
Java的多进程运行模式分析 -
海阔天空love:
很实用 。。。能给个例子吗?
现有的Web打印控制技术分成几种方案
5月30日,用了一天的时间在找一个c3p0的bug,但没有找到。31日突然想起来可能是某个原因,于是配置环境->运行,OK 问题解决。
---
经过:最近做了一个SSH2项目,想在项目中使用c3p0连接池,于是就在本地机搭起了项目,配好了spring管理的连接池c3p0,将项目中用到的mysql数据库放在vmware虚拟机中运行。
可是运行项目的时候,报错,但数据库表却能够生成。
此时,我的主机操作系统是windows xp ,数据库服务器的操作系统也是windows xp.数据库mysql 5.0.22 ,所用用户test1的远程权限已经开通。
报错信息如下:
不管怎样调整c3p0的运行参数,都没办法找到错误的所在,表面看就是无法获得连接。
但我把项目拷贝到数据库服务器上,让程序和数据库处于同一机器上时,再运行,错误没有了,运行速度很快。
从上面的情况来看,有两种可能:一是网络这个环节上出了问题,不能正常处理数据库的请求数据。二是c3p0有问题,在本地机可以很好地运行,在网络协议上的处理上有不正常的的地方。但这两种可能我都觉得不太可能,因为无论是网络还是c3p0都不是一天两天的东西了,存在这种低级问题的可能很小。
可问题依然存在,夜不能寐....。
第二日,猛然想起来,记得当年windows xp sp3发布以后,曾经限制过TCP/IP的连接,会不会是这个东东在作怪呢?赶紧在vmware 的windows 2003 server服务器上安装上mysql 5.0.22,配置好帐号的远程访问权限。项目运行OK
至此,问题终于得到解决。
原因:因为windows xp限制了TCP/IP的并发数量,如果我们用xp做服务器,单机开发是没有问题的,这时,我们登录数据库都是一个用户,一个连接。但用了连接池以后,就是一个用户,多个连接了,这时候xp的限制作用就生效了。
所以,在项目中使用数据库服务器的时候,其操作系统最好选择server版本的,否则,出现问题很不好查。
我在网上查错误的时候,发现好多人都说这是c3p0的bug,在此特更正一下,出现这种错误,多数是环境问题,尤其是windows xp作服务器的情况下。
C3p0 no bug but the windows xp have
顺便说一下,c3p0的0.9.2-pre1版也在5月27日发布了。
---
经过:最近做了一个SSH2项目,想在项目中使用c3p0连接池,于是就在本地机搭起了项目,配好了spring管理的连接池c3p0,将项目中用到的mysql数据库放在vmware虚拟机中运行。
可是运行项目的时候,报错,但数据库表却能够生成。
此时,我的主机操作系统是windows xp ,数据库服务器的操作系统也是windows xp.数据库mysql 5.0.22 ,所用用户test1的远程权限已经开通。
报错信息如下:
2010-05-30 12:07:19,046 INFO [org.hibernate.tool.hbm2ddl.SchemaUpdate] - Running hbm2ddl schema update 2010-05-30 12:07:19,046 INFO [org.hibernate.tool.hbm2ddl.SchemaUpdate] - fetching database metadata 2010-05-30 12:07:32,875 WARN [com.mchange.v2.async.ThreadPoolAsynchronousRunner] - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@18105e8 -- [color=red]APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks![/color] 2010-05-30 12:07:32,875 WARN [com.mchange.v2.async.ThreadPoolAsynchronousRunner] - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@18105e8 -- APPARENT DEADLOCK!!! Complete Status: Managed Threads: 3 Active Threads: 3 Active Tasks: com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@16d8196 (C3P0PooledConnectionPoolManager-Helper Thread-#2) com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@56b93a (C3P0PooledConnectionPoolManager-Helper Thread-#0) com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@19abd2b (C3P0PooledConnectionPoolManager-Helper Thread-#1) Pending Tasks: com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@1f98d58 com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@aea710 com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@5a2eaa com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@adae91 com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@9fe84e com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask@4c71d2 com.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@c4bc34 Pool thread stack traces: Thread[C3P0PooledConnectionPoolManager-Helper Thread-#2,5,main] java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114) com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161) com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189) com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2500) com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:600) com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1079) com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2186) com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:787) com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49) 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:409) com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:357) com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134) com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182) com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171) com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:152) com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1074) com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1061) com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32) com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1796) com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:620) Thread[C3P0PooledConnectionPoolManager-Helper Thread-#1,5,main] java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114) com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161) com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189) com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2500) com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:600) com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1079) com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2186) com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:787) com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49) 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:409) com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:357) com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134) com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182) com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171) com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:152) com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1074) com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1061) com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32) com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1796) com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:620) Thread[C3P0PooledConnectionPoolManager-Helper Thread-#0,5,main] java.net.SocketInputStream.socketRead0(Native Method) java.net.SocketInputStream.read(SocketInputStream.java:129) com.mysql.jdbc.util.ReadAheadInputStream.fill(ReadAheadInputStream.java:114) com.mysql.jdbc.util.ReadAheadInputStream.readFromUnderlyingStreamIfNecessary(ReadAheadInputStream.java:161) com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:189) com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2500) com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:600) com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1079) com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2186) com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:787) com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:49) 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:409) com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:357) com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:285) com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134) com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182) com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171) com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:152) com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1074) com.mchange.v2.resourcepool.BasicResourcePool.doAcquireAndDecrementPendingAcquiresWithinLockOnSuccess(BasicResourcePool.java:1061) com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32) com.mchange.v2.resourcepool.BasicResourcePool$ScatteredAcquireTask.run(BasicResourcePool.java:1796) com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:620) 2010-05-30 12:07:32,921 INFO [org.hibernate.tool.hbm2ddl.SchemaUpdate] - updating schema 2010-05-30 12:07:33,015 INFO [org.hibernate.tool.hbm2ddl.TableMetadata] - table found: testDB.employee 2010-05-30 12:07:33,015 INFO [org.hibernate.tool.hbm2ddl.TableMetadata] - columns: [username, gender, password] 2010-05-30 12:07:33,015 INFO [org.hibernate.tool.hbm2ddl.TableMetadata] - foreign keys: [] 2010-05-30 12:07:33,015 INFO [org.hibernate.tool.hbm2ddl.TableMetadata] - indexes: [primary] 2010-05-30 12:07:33,015 INFO [org.hibernate.tool.hbm2ddl.SchemaUpdate] - schema update complete 2010-05-30 12:07:33,125 INFO [org.springframework.orm.hibernate3.HibernateTransactionManager] - Using DataSource [com.mchange.v2.c3p0.ComboPooledDataSource [ acquireIncrement -> 5, acquireRetryAttempts -> 30, acquireRetryDelay -> 1000, autoCommitOnClose -> false, automaticTestTable -> null, breakAfterAcquireFailure -> false, checkoutTimeout -> 0, connectionCustomizerClassName -> null, connectionTesterClassName -> com.mchange.v2.c3p0.impl.DefaultConnectionTester, dataSourceName -> 1hge13i881s7ax0b2yw8gy|17494c8, debugUnreturnedConnectionStackTraces -> false, description -> null, driverClass -> org.gjt.mm.mysql.Driver, factoryClassLocation -> null, forceIgnoreUnresolvedTransactions -> false, identityToken -> 1hge13i881s7ax0b2yw8gy|17494c8, idleConnectionTestPeriod -> 60, initialPoolSize -> 10, jdbcUrl -> jdbc:mysql://192.168.1.165:3306/testDB?useUnicode=true&characterEncoding=UTF-8, maxAdministrativeTaskTime -> 0, maxConnectionAge -> 0, maxIdleTime -> 60, maxIdleTimeExcessConnections -> 0, maxPoolSize -> 30, maxStatements -> 0, maxStatementsPerConnection -> 0, minPoolSize -> 5, numHelperThreads -> 3, numThreadsAwaitingCheckoutDefaultUser -> 0, preferredTestQuery -> null, properties -> {user=******, password=******}, propertyCycle -> 0, statementCacheNumDeferredCloseThreads -> 0, statementDestroyerNumActiveThreads -> -1, statementDestroyerNumConnectionsInUseAllUsers -> -1, statementDestroyerNumConnectionsInUseDefaultUser -> -1, statementDestroyerNumConnectionsWithDeferredDestroyStatementsAllUsers -> -1, statementDestroyerNumConnectionsWithDeferredDestroyStatementsDefaultUser -> -1, statementDestroyerNumDeferredDestroyStatementsAllUsers -> -1, statementDestroyerNumDeferredDestroyStatementsDefaultUser -> -1, statementDestroyerNumIdleThreads -> -1, statementDestroyerNumTasksPending -> -1, statementDestroyerNumThreads -> -1, testConnectionOnCheckin -> false, testConnectionOnCheckout -> false, unreturnedConnectionTimeout -> 0, usesTraditionalReflectiveProxies -> false ]] of Hibernate SessionFactory for HibernateTransactionManager
不管怎样调整c3p0的运行参数,都没办法找到错误的所在,表面看就是无法获得连接。
但我把项目拷贝到数据库服务器上,让程序和数据库处于同一机器上时,再运行,错误没有了,运行速度很快。
从上面的情况来看,有两种可能:一是网络这个环节上出了问题,不能正常处理数据库的请求数据。二是c3p0有问题,在本地机可以很好地运行,在网络协议上的处理上有不正常的的地方。但这两种可能我都觉得不太可能,因为无论是网络还是c3p0都不是一天两天的东西了,存在这种低级问题的可能很小。
可问题依然存在,夜不能寐....。
第二日,猛然想起来,记得当年windows xp sp3发布以后,曾经限制过TCP/IP的连接,会不会是这个东东在作怪呢?赶紧在vmware 的windows 2003 server服务器上安装上mysql 5.0.22,配置好帐号的远程访问权限。项目运行OK
至此,问题终于得到解决。
原因:因为windows xp限制了TCP/IP的并发数量,如果我们用xp做服务器,单机开发是没有问题的,这时,我们登录数据库都是一个用户,一个连接。但用了连接池以后,就是一个用户,多个连接了,这时候xp的限制作用就生效了。
所以,在项目中使用数据库服务器的时候,其操作系统最好选择server版本的,否则,出现问题很不好查。
我在网上查错误的时候,发现好多人都说这是c3p0的bug,在此特更正一下,出现这种错误,多数是环境问题,尤其是windows xp作服务器的情况下。
C3p0 no bug but the windows xp have
顺便说一下,c3p0的0.9.2-pre1版也在5月27日发布了。
发表评论
-
thinkpad T440P 无线网卡睡眠恢复后无法上网故障的解决
2014-08-06 23:54 2572现象:thinkpad T440P 无线网卡睡眠恢复后无法上网 ... -
myeclipse10.7.1注册及导出war异常的破解
2013-03-02 12:55 7一、原作者的破解程序在myeclipse10.7.1环境下测试 ... -
tcnative-1_dll下载地址
2012-04-09 22:31 1086tcnative-1.dll下载地址: http://arch ... -
转:权限的分类
2011-09-30 16:59 1079权限主要分两大类:一是功能权限,二是数据权限。 功能权 ... -
转:表单同时提交多条记录
2011-09-07 09:38 2526http://zhidao.baidu.com/questio ... -
立即行动 拯救JAVA
2011-04-02 09:12 833通过Oracle目前的各种行动,我可以肯定它会比微软更 ... -
转:java获取根路径有两种方式
2010-09-04 22:49 2481http://java.chinaitlab.com/net/ ... -
转:java等比例压缩图片
2010-08-24 15:03 2116http://hi.baidu.com/bdusnb/blog ... -
转:多路归并排序(远远大于内存的数据进行外排序)
2010-08-20 16:38 1901http://hi.baidu.com/qq350884961 ... -
转:两个字母搞定J2EE通用分页标签
2010-06-16 15:59 1424两个字母搞定J2EE通用分 ... -
系统中那些部分可以提取为公共部分?
2010-06-12 18:39 822我目前能想到的就是: 分页、上传、通用DAO层、控制层、数据字 ... -
转:Quartz在Spring中动态设置cronExpression (spring设置动态定时任务)
2010-06-09 09:22 1117http://hi.baidu.com/vip099/blog ... -
转:如何利用eclipse实现批量修改文件的编码方式
2010-05-29 14:02 3504原文地址:http://dev.firnow.com/cour ... -
转载:教你彻底解决 Tomcat 5下文字乱码问题
2010-03-04 20:30 915http://tech.ccidnet.com/art/353 ... -
JDBC addbatch批量处理数据时有最大值限制
2009-12-27 13:29 7923在用jdbc向数据灌入数据时,发现120000的数据每次只能灌 ... -
网站如何赚钱
2009-05-28 13:30 609很多朋友,特别是对网 ... -
走进Java 7中的模块系统
2009-05-15 09:44 1000http://developer.51cto.com/art/ ... -
MyEclipse7.1插件安装
2009-04-28 11:06 3574最近刚使用MyEclise 7.1 ,发现期插件安装与以前有所 ... -
Java的多进程运行模式分析
2009-04-25 21:05 1180一般我们在Java中运行其它类中的方法时,无论是静态调用,还是 ... -
Erlang与JAVA的交互操作
2009-04-23 08:54 1580http://www.lupaworld.com/action ...
相关推荐
c3p0存在严重bug,解决AcquireTask占用了内部线程池的所有线程,没有线程可以来执行BasicResourcePool$6对应的任务,而这个任务的作用就是把池外使用完的连接放回池内的,c3p0被挂起了问题。
C3P0是一个开源的Java连接池,全称为Comming Soon Connection Pool,它提供了一种管理数据库连接的方式,使得在多用户并发访问时能够有效地利用和管理数据库资源,提高系统的性能和稳定性。C3P0的主要功能是为应用...
- `c3p0.jar`:包含了C3P0的核心连接池功能。 - `mchange-commons-java.jar`:Mchange Commons Java库,提供了一些通用工具类和异常处理。 - `mysql-connector-java.jar`(或其他数据库驱动JAR):根据你的数据库...
C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。标题中的"c3p0-0.9.5.1"指的是C3P0的一个特定版本,即0.9.5.1版。这个版本可能包含了对早期版本的修复、性能优化或新功能...
这个版本号表示的是C3P0的特定发行版,0.9.1.2,可能包含了该版本修复的一些bug和改进的功能。C3P0的主要功能包括自动管理数据库连接的创建、分配、回收和销毁,以及在数据库连接空闲时进行检测和维护,确保连接的...
C3P0库依赖于其他几个JAR包来实现其功能,包括`c3p0-0.9.2.1.jar`、`hibernate-c3p0-4.0.0.Final[1].jar`以及`mchange-commons-java-0.2.3.4.jar`。 1. **c3p0-0.9.2.1.jar**: 这是C3P0的主要库文件,包含了C3P0的...
C3P0是一个开源的Java连接池,全称为Comming Soon Connection Pool,它提供了一种在JDBC数据库连接管理中的高效、稳定和扩展性良好的解决方案。C3P0的主要目标是通过提供自动的资源管理和故障恢复功能,来帮助Java...
C3p0c3p0-0.9.5.5三个jar包使用,匹配mysql8.0等信息,包含mchange-commons-java-0.2.19.jar、c3p0-oracle-thin-extras-0.9.5.5.jar、c3p0-0.9.5.5.jar
C3P0连接池是Java开发中常用的数据库连接池组件,它由M-Fenyes创建并维护,旨在提供一个高效、灵活且稳定的数据库连接管理工具。数据库连接池在多线程应用中扮演着重要角色,它能有效地管理和复用数据库连接,避免...
在描述中提到的三个jar包,c3p0-0.9.1.jar、c3p0-0.9.1.2.jar和c3p0-0.9.1-pre6.jar,都是C3P0的不同版本。通常,你需要的是最新版本,以获取最新的功能和修复的bug。例如,c3p0-0.9.1.2.jar比c3p0-0.9.1.jar更新,...
C3P0库主要服务于那些需要频繁创建和关闭数据库连接的应用程序,通过连接池技术,可以有效地减少数据库连接的创建和销毁过程,从而降低了系统资源的消耗。 在给定的压缩包"C3P0-jar包和依赖包.zip"中,包含了两个...
C3P0是一个广泛使用的开源Java JDBC连接池,它的全称是Comprehensive Connection Pooling Package。这个库的主要目的是提供数据库连接的高效管理,以优化数据库应用程序的性能和资源利用。C3P0的设计目标是为了满足...
C3P0是一款开源的Java数据库连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Java应用程序中,C3P0可以帮助我们更有效地管理和使用数据库连接,避免频繁创建和关闭连接导致的性能损失。下面将...
标题:"c3p0用法步骤" 描述:"这是我学习过程中积累的学习笔记,希望对大家有用" 标签:"c3p0" 知识点详述: C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC连接池的特性,如:自动重连、自动...
**C3P0详解** C3P0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。在Java的Web应用中,数据库连接的创建、分配、管理和释放是相当耗时的,而C3P0通过管理这些连接,提高了...
C3P0是一款开源的Java连接池,全称为ComMChange V2 C3P0,由M. J. Franklin创建并维护。它提供了一种高效、灵活且强大的数据库连接管理方式,广泛应用于Java应用程序中,特别是对于那些需要大量并发数据库访问的Web...
整合SpringMVC与C3P0能有效地优化数据库操作,提高应用的性能和稳定性。 首先,我们需要了解C3P0的基本概念。C3P0是一个完全兼容JDBC3规范的连接池实现,提供了连接测试、空闲连接检测、自动关闭无效连接等功能。其...
C3P0是一款开源的Java连接池,全称为Comming Soon Connection Pool,它是一个支持JDBC的数据库连接池组件。这个组件的主要作用是提高数据库访问的效率,通过复用已经建立的数据库连接,减少频繁创建和关闭连接所造成...
**c3p0-0.9.2-pre1:数据库连接池详解** c3p0是一个开源的JDBC连接池,它实现了数据源和JNDI绑定,支持JDBC3规范和JDBC2的标准扩展。c3p0-0.9.2-pre1是其在2007年发布的一个版本,尽管现在有更新的版本,但这个老...