c3p0连接池问题

问题描述

上网查找资料,发现很多人也遇到了"APPARENT DEADLOCK"的问题http://www.iteye.com/topic/1117330http://www.iteye.com/topic/71051 http://www.iteye.com/topic/22160 http://www.iteye.com/topic/87313 http://www.iteye.com/topic/429677 https://forum.hibernate.org/viewtopic.php?f=1&t=947246&sid=ad2b8cc3213c9dac834d81b55bbf6291   以下是我在tomcat下跑的异常信息   请问怎么解决弄了好几天啦。真的是C3P0 bug吗 2011-11-04 15:37:22,694 WARN com.mchange.v2.async.ThreadPoolAsynchronousRunner - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@6fd42b -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!2011-11-04 15:37:22,694 WARN com.mchange.v2.async.ThreadPoolAsynchronousRunner - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@6fd42b -- APPARENT DEADLOCK!!! Complete Status: Managed Threads: 3Active Threads: 3Active Tasks: com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@18be695 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1cf63de (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@a5b703 (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)Pending Tasks: com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@192492acom.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@101935dcom.mchange.v2.resourcepool.BasicResourcePool$1RefurbishCheckinResourceTask@71f06cPool thread stack traces:Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,main]java.lang.Thread.sleep(Native Method)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,main]java.lang.Thread.sleep(Native Method)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,main]java.lang.Thread.sleep(Native Method)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)2011-11-04 15:37:28,123 WARN org.directwebremoting.dwrp.DefaultConverterManager - Clash of converters for com.forgon.oa.schedule.model.Schedule. Using org.directwebremoting.convert.BeanConverter in place of org.directwebremoting.convert.BeanConverter2011-11-04 15:37:28,123 WARN org.directwebremoting.dwrp.DefaultConverterManager - Clash of converters for com.forgon.oa.schedule.model.RepeatRange. Using org.directwebremoting.convert.BeanConverter in place of org.directwebremoting.convert.BeanConverter2011-11-04 15:37:28,123 WARN org.directwebremoting.dwrp.DefaultConverterManager - Clash of converters for com.forgon.csair.dutyreport.dutyreportmgr.model.PilotDuty. Using org.directwebremoting.convert.BeanConverter in place of org.directwebremoting.convert.BeanConverter2011-11-04 15:37:28,123 WARN org.directwebremoting.dwrp.DefaultConverterManager - Clash of converters for com.csair.cmis.integermanagement.reservation.model.ReservationHandle. Using org.directwebremoting.convert.BeanConverter in place of org.directwebremoting.convert.BeanConverter2011-11-04 15:37:28,169 ERROR org.directwebremoting.impl.SignatureParser - Unable to find method called: getViewTableList on type: com.forgon.knowledge.dwr.KnowledgeTableManager2011-11-04 15:37:28,185 ERROR org.directwebremoting.impl.SignatureParser - Unable to find method called: getTemplateTableList on type: com.forgon.oa.dwr.table.TemplateTableManager2011-11-04 15:37:28,201 ERROR org.directwebremoting.impl.SignatureParser - Unable to find method called: getLogTableList on type: com.forgon.log.dwr.table.LogTableManager2011-11-04 15:37:28,232 ERROR org.directwebremoting.impl.SignatureParser - Parameter mismatch parsing signatures section in dwr.xml on line: FlowDefinitionTableManager.saveOrUpdateFromJs(FlowDefinition flowDefinition, List<MyTaskNode> nodeList, List<Connection> lineList)2011-11-04 15:37:28,247 ERROR org.directwebremoting.impl.SignatureParser - Unable to find method called: getFlowDefinitionTableList on type: com.forgon.workflow.designer.dwr.table.FlowDefinitionTableManager2011-11-04 15:37:34,472 WARN com.mchange.v2.resourcepool.BasicResourcePool - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@a5b703 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: java.sql.SQLException: Listener refused the connection with the following error:ORA-12500, TNS:listener failed to start a dedicated server processThe Connection descriptor used by the client was:at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441)at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)2011-11-04 15:37:34,472 ERROR com.mchange.v2.resourcepool.BasicResourcePool - A RESOURCE POOL IS PERMANENTLY BROKEN! [com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@a5b703]2011-11-04 15:37:34,472 ERROR com.mchange.v2.resourcepool.BasicResourcePool - com.mchange.v2.resourcepool.BasicResourcePool@2567a6 -- Unexpectedly broken!!!com.mchange.v2.resourcepool.ResourcePoolException: Unexpected Break Stack Trace!at com.mchange.v2.resourcepool.BasicResourcePool.unexpectedBreak(BasicResourcePool.java:866)at com.mchange.v2.resourcepool.BasicResourcePool.access$1100(BasicResourcePool.java:32)at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1854)at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)2011-11-04 15:59:25,482 WARN com.mchange.v2.async.ThreadPoolAsynchronousRunner - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@121b9ea -- APPARENT DEADLOCK!!! Creating emergency threads for unassigned pending tasks!2011-11-04 15:59:25,482 WARN com.mchange.v2.async.ThreadPoolAsynchronousRunner - com.mchange.v2.async.ThreadPoolAsynchronousRunner$DeadlockDetector@121b9ea -- APPARENT DEADLOCK!!! Complete Status: Managed Threads: 3Active Threads: 3Active Tasks: com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@134c6be (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1e417da (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1da208c (com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2)Pending Tasks: com.mchange.v2.resourcepool.BasicResourcePool$1DestroyResourceTask@18eee3bcom.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@ba9379Pool thread stack traces:Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#1,5,main]java.lang.Thread.sleep(Native Method)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#0,5,main]java.net.SocketInputStream.socketRead0(Native Method)java.net.SocketInputStream.read(Unknown Source)oracle.net.ns.Packet.receive(Unknown Source)oracle.net.ns.NSProtocol.connect(Unknown Source)oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:858)oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:268)oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441)oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)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:137)com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)Thread[com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread-#2,5,main]java.lang.Thread.sleep(Native Method)com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)2011-11-04 16:00:25,511 WARN com.mchange.v2.async.ThreadPoolAsynchronousRunner - Task com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@134c6be (in deadlocked PoolThread) failed to complete in maximum time 60000ms. Trying interrupt().2011-11-04 16:00:25,511 WARN com.mchange.v2.async.ThreadPoolAsynchronousRunner - Task com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1da208c (in deadlocked PoolThread) failed to complete in maximum time 60000ms. Trying interrupt().2011-11-04 16:00:30,457 WARN com.mchange.v2.resourcepool.BasicResourcePool - com.mchange.v2.resourcepool.BasicResourcePool@24e11c -- Thread unexpectedly interrupted while performing an acquisition attempt.java.lang.InterruptedException: sleep interruptedat java.lang.Thread.sleep(Native Method)at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)2011-11-04 16:00:31,502 WARN com.mchange.v2.resourcepool.BasicResourcePool - com.mchange.v2.resourcepool.BasicResourcePool@24e11c -- Thread unexpectedly interrupted while performing an acquisition attempt.java.lang.InterruptedException: sleep interruptedat java.lang.Thread.sleep(Native Method)at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1805)at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)2011-11-04 16:04:19,247 WARN com.mchange.v2.resourcepool.BasicResourcePool - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@93c4bb -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: java.sql.SQLException: Listener refused the connection with the following error:ORA-12500, TNS:listener failed to start a dedicated server processThe Connection descriptor used by the client was:at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441)at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)2011-11-04 16:04:19,247 ERROR com.mchange.v2.resourcepool.BasicResourcePool - A RESOURCE POOL IS PERMANENTLY BROKEN! [com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@93c4bb]2011-11-04 16:04:19,247 ERROR com.mchange.v2.resourcepool.BasicResourcePool - com.mchange.v2.resourcepool.BasicResourcePool@24e11c -- Unexpectedly broken!!!com.mchange.v2.resourcepool.ResourcePoolException: Unexpected Break Stack Trace!at com.mchange.v2.resourcepool.BasicResourcePool.unexpectedBreak(BasicResourcePool.java:866)at com.mchange.v2.resourcepool.BasicResourcePool.access$1100(BasicResourcePool.java:32)at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1854)at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)2011-11-04 16:04:55,595 WARN com.mchange.v2.resourcepool.BasicResourcePool - com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1e465c2 -- Acquisition Attempt Failed!!! Clearing pending acquires. While trying to acquire a needed new resource, we failed to succeed more than the maximum number of allowed acquisition attempts (30). Last acquisition attempt exception: java.sql.SQLException: Listener refused the connection with the following error:ORA-12500, TNS:listener failed to start a dedicated server processThe Connection descriptor used by the client was:at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:112)at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:261)at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:387)at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:441)at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:165)at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:35)at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:801)at com.mchange.v2.c3p0.DriverManagerDataSource.getConnection(DriverManagerDataSource.java:134)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:182)at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:171)at com.mchange.v2.c3p0.impl.C3P0PooledConnectionPool$1PooledConnectionResourcePoolManager.acquireResource(C3P0PooledConnectionPool.java:137)at com.mchange.v2.resourcepool.BasicResourcePool.doAcquire(BasicResourcePool.java:1014)at com.mchange.v2.resourcepool.BasicResourcePool.access$800(BasicResourcePool.java:32)at com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask.run(BasicResourcePool.java:1810)at com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run(ThreadPoolAsynchronousRunner.java:547)2011-11-04 16:04:55,595 ERROR com.mchange.v2.resourcepool.BasicResourcePool - A RESOURCE POOL IS PERMANENTLY BROKEN! [com.mchange.v2.resourcepool.BasicResourcePool$AcquireTask@1e465c2]2011-11-04 16:04:55,595 ERROR com.mchange.v2.resourcepool.BasicResourcePool - com.mchange.v2.resourcepool.BasicResourcePool@24e11c -- Unexpectedly broken!!!com.mchange.v2.resourcepool.ResourcePoolException: Unexpected Break Stack Trace!   问题补充:<div class="quote_title">khan 写道</div><div class="quote_div">好像是的,你给的信息太少,我用的时候也有这个情况,但是不影响使用,只是有冒异常的tracert。</div><br />用的时候就是getConnection 获取连接的时候就是为空。。。

解决方案

好像是的,你给的信息太少,我用的时候也有这个情况,但是不影响使用,只是有冒异常的tracert。

时间: 2024-11-08 22:31:19

c3p0连接池问题的相关文章

c3p0连接池中获取的Connection对象的close()方法是真的把连接给关闭了?

问题描述 c3p0连接池中获取的Connection对象的close()方法是真的把连接给关闭了? 自己做写了一个管理数据源的DBManager,构想中从数据源里面获取的Connection使用完之后执行close()方法,然后把Connection对象闲置回连接池中. 但是测试出来的结果好像每次执行close()之后connection就销毁了. 代码如下: DBManager.java package ben.DBUtils; import java.sql.Connection; impo

hibernate + c3p0连接池 出现以下错误,求解答!

问题描述 hibernate + c3p0连接池 出现以下错误,求解答! 5C 05-Apr-2016 10:36:43.186 INFO [C3P0PooledConnectionPoolManager[identityToken->2sbh7t9f1rc58zmz5ikx9|52feca18]-AdminTaskTimer] org.apache.catalina.loader.WebappClassLoaderBase.checkStateForResourceLoading Illega

请问有没有人知道c3p0连接池配置文件报错,下面是具体报错内容

问题描述 请问有没有人知道c3p0连接池配置文件报错,下面是具体报错内容 Invalid property 'driverClassName' of bean class [com.mchange.v2.c3p0.ComboPooledDataSource]: Bean property 'driverClassName' is not writable or has an invalid setter method. Does the parameter type of the setter

数据库连接池-c3p0连接池 无需关注statement是否关闭吗

问题描述 c3p0连接池 无需关注statement是否关闭吗 c3p0连接池 ,当connection.close()的时候,把数据连接还回连接池中,那么connection所产生的statement,resultset等对象是怎么关闭的? 解决方案 使用 c3p0 的话,也是 java.sql.Connection,只要是 JDBC 都是这个接口的对象! 使用完后必须 con.close() 掉,使用连接池的话,执行 con.close 并不会关闭与数据库的 TCP 连接,而是将连接还回到池

c3p0连接池-如何快速定位jar 包冲突

问题描述 如何快速定位jar 包冲突 建立c3p0连接池是时,报Mlog clients using java 1.4+ standard logging. 请问这是jar 包冲突造成的么.如何快速定位jar 包冲突造成的问题呢

可以介绍一下c3p0连接池和自己写的向量连接池的区别么?

问题描述 可以介绍一下c3p0连接池和自己写的向量连接池的区别么? 可以介绍一下c3p0连接池和自己写的Vector向量连接池的区别么? 解决方案 一个是系统的 一个是自定义的

javaee-使用c3p0连接池是出现了空指针异常

问题描述 使用c3p0连接池是出现了空指针异常 连接不上我的mysql数据库,但是我单独测试又可以连接上,测试代码如下: Connection conn = null; Statement stmt = null; ResultSet rs = null; try { Class.forName("com.mysql.jdbc.Driver"); String url = "jdbc:mysql://localhost:3306/shi"; String name

hibernate+c3p0连接池,插入数据程序运行一会就卡住

问题描述 程序是一个导入Excel数据的工具,excel中有好几千条数据,但是程序运行一会,每次都是导入24条以后程序就不运行了,程序好像处于挂起状态一样,卡住了,控制台上也不再打印hibernate日志信息,不知道什么原因,有没有会的看一下,谢谢!   hibernate.cfg.xml配置如下:<?xml version='1.0' encoding='utf-8'?><!DOCTYPE hibernate-configuration PUBLIC "-//Hibernat

c3p0连接池-c3p0 连接不释放 请路过的大神过来看看

问题描述 c3p0 连接不释放 请路过的大神过来看看 配置文件如下 <?xml version="1.0" encoding="UTF-8"?> xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:aop="http://www.springframework.org/schema/aop" xmlns:context="http://w

MySQL---数据库从入门走向大神系列(十四)-ComboPooledDataSource(C3P0连接池配置)

需要准备的jar包: MySQL的jar包mysql-connector-java-5.1.39-bin目前是5.1.39版本: http://dev.mysql.com/downloads/connector/j/ C3p0的2个包: https://sourceforge.net/projects/c3p0/ c3p0-0.9.1.2.jar和c3p0-sources-0.9.1.2.jar 配置文件:c3p0-config.xml 名字必须为这个! <c3p0-config> <!