java.lang.AbstractMethodError: com.microsoft.jdbc.sqlserver.SQLServerConnection.getHoldability()I
at com.mchange.v2.c3p0.impl.NewPooledConnection.carefulCheckHoldability(NewPooledConnection.java:117)
at com.mchange.v2.c3p0.impl.NewPooledConnection.<init>(NewPooledConnection.java:109)
at com.mchange.v2.c3p0.WrapperConnectionPoolDataSource.getPooledConnection(WrapperConnectionPoolDataSource.java:198)
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)
此错误的原因是:sql server 2000的driver里面没有getHodability()I,而c3p0的包内又存在carefulCheckHoldability方法来检查sqlserver2000,造成这个错误,在这里我使用的sql server 2000的driver是:msbase.jar, mssqlserver.jar, msutil.jar三个,c3p0对应的driver是:c3p0-0.9.1.2.jar,
修正的办法是,查找一个低一点版本的c3p0的driver,保证其在com.mchange.v2.c3p0.impl.NewPooledConnection目录下无carefulCheckHoldability方法即可。