sql server - java.sql.SQLException: An attempt by a client to checkout a Connection has timed out -
sql server - java.sql.SQLException: An attempt by a client to checkout a Connection has timed out -
i have java client server supposed found connection pool on startup failing on timeout error. there many threads on same issue none of solutions worked me
am using jdk 7 , below mchange maven dependency
<dependency> <groupid>com.mchange</groupid> <artifactid>c3p0</artifactid> <version>0.9.2.1</version> </dependency>
jdbc.properties
url=jdbc\:sqlserver\://server\\instance;databasename\=db driver=com.microsoft.sqlserver.jdbc.sqlserverdriver user=admin password=admin maxpoolsize=20 minpoolsize=5 acquireincrement=5
here dao class establishes connection-pool on server startup
public class sharedocdao { //.......... private static connection getconnection() throws sqlexception { log.info("getting db connection"); combopooleddatasource cpds = getpool(); homecoming cpds.getconnection(); //line 36: } private static combopooleddatasource getpool() { if (pool!=null) { homecoming pool; } combopooleddatasource cpds = new combopooleddatasource(); seek { properties dbproperties = getdbproperties(); //loads jdbc driver cpds.setdriverclass(dbproperties.getproperty("driver")); cpds.setjdbcurl(dbproperties.getproperty("url")); cpds.setuser(dbproperties.getproperty("user")); cpds.setpassword(dbproperties.getproperty("password")); // settings below optional -- c3p0 can work defaults cpds.setminpoolsize(integer.valueof(dbproperties.getproperty("minpoolsize"))); cpds.setacquireincrement(integer.valueof(dbproperties.getproperty("acquireincrement"))); cpds.setmaxpoolsize(integer.valueof(dbproperties.getproperty("maxpoolsize"))); cpds.setcheckouttimeout(30000); cpds.setidleconnectiontestperiod(10800); cpds.setmaxidletime(21600); log.info("cpds driver "+cpds.getdriverclass()+ " jdbc url = "+cpds.getjdbcurl() +" user = "+cpds.getuser()+ " pwd = "+cpds.getpassword()+ " minpoolsize "+cpds.getminpoolsize() +" acquireincrement "+cpds.getacquireincrement() +" maxpoolsize "+cpds.getmaxpoolsize()); } grab (exception ex) { log.error("failed create pool", ex); } pool = cpds; homecoming pool; } }
here stacktrace
[oct 29 11:58:22] sslhandshake-3 | error | com.dc.ssltunnel.server.sharedocdao | error querying user info java.sql.sqlexception: effort client checkout connection has timed out. @ com.mchange.v2.sql.sqlutils.tosqlexception(sqlutils.java:118) @ com.mchange.v2.sql.sqlutils.tosqlexception(sqlutils.java:77) @ com.mchange.v2.c3p0.impl.c3p0pooledconnectionpool.checkoutpooledconnection(c3p0pooledconnectionpool.java:687) @ com.mchange.v2.c3p0.impl.abstractpoolbackeddatasource.getconnection(abstractpoolbackeddatasource.java:140) @ com.dc.ssltunnel.server.sharedocdao.getconnection(sharedocdao.java:36) @ com.dc.ssltunnel.server.sharedocdao.checkserialnumber(sharedocdao.java:75) @ com.dc.ssltunnel.server.mainserver.retrieveorcreateclient(mainserver.java:95) @ com.dc.ssltunnel.server.mainserverhandshakethread.handshake(mainserverhandshakethread.java:58) @ com.dc.ssltunnel.server.mainserverhandshakethread.run(mainserverhandshakethread.java:71) @ com.dc.ssltunnel.utilities.threading.shutdownthreadpoolexecutor$1.run(shutdownthreadpoolexecutor.java:36) @ java.util.concurrent.executors$runnableadapter.call(unknown source) @ java.util.concurrent.futuretask.run(unknown source) @ java.util.concurrent.threadpoolexecutor.runworker(unknown source) @ java.util.concurrent.threadpoolexecutor$worker.run(unknown source) @ java.lang.thread.run(unknown source) caused by: com.mchange.v2.resourcepool.timeoutexception: client timed out while waiting acquire resource com.mchange.v2.resourcepool.basicresourcepool@3414b7f8 -- timeout @ awaitavailable() @ com.mchange.v2.resourcepool.basicresourcepool.awaitavailable(basicresourcepool.java:1416) @ com.mchange.v2.resourcepool.basicresourcepool.prelimcheckoutresource(basicresourcepool.java:606) @ com.mchange.v2.resourcepool.basicresourcepool.checkoutresource(basicresourcepool.java:526) @ com.mchange.v2.c3p0.impl.c3p0pooledconnectionpool.checkoutandmarkconnectioninuse(c3p0pooledconnectionpool.java:755) @ com.mchange.v2.c3p0.impl.c3p0pooledconnectionpool.checkoutpooledconnection(c3p0pooledconnectionpool.java:682) ... 12 more [oct 29 11:58:22] sslhandshake-3 | debug | com.dc.ssltunnel.server.mainserverhandshakethread | handshake thread done [oct 29 11:58:22] sslhandshake-3 | debug | com.dc.ssltunnel.server.mainserverhandshakethread | handshake thread done [oct 29 11:58:22] sslhandshake-1 | info | com.dc.ssltunnel.server.sharedocdao | getting db connection [oct 29 11:58:22] sslhandshake-1 | info | com.dc.ssltunnel.server.sharedocdao | getting db connection [oct 29 11:58:22] sslhandshake-3 | debug | com.dc.ssltunnel.utilities.threading.shutdownthreadpoolexecutor | runnable:removing total:2 [oct 29 11:58:22] sslhandshake-3 | debug | com.dc.ssltunnel.utilities.threading.shutdownthreadpoolexecutor | runnable:removing total:2 [oct 29 11:58:22] sslhandshake-1 | error | com.dc.ssltunnel.server.sharedocdao | error querying user info java.sql.sqlexception: connections not acquired underlying database! @ com.mchange.v2.sql.sqlutils.tosqlexception(sqlutils.java:118) @ com.mchange.v2.c3p0.impl.c3p0pooledconnectionpool.checkoutpooledconnection(c3p0pooledconnectionpool.java:689) @ com.mchange.v2.c3p0.impl.abstractpoolbackeddatasource.getconnection(abstractpoolbackeddatasource.java:140) @ com.dc.ssltunnel.server.sharedocdao.getconnection(sharedocdao.java:36) @ com.dc.ssltunnel.server.sharedocdao.checkserialnumber(sharedocdao.java:75) @ com.dc.ssltunnel.server.mainserver.retrieveorcreateclient(mainserver.java:95) @ com.dc.ssltunnel.server.mainserverhandshakethread.handshake(mainserverhandshakethread.java:58) @ com.dc.ssltunnel.server.mainserverhandshakethread.run(mainserverhandshakethread.java:71) @ com.dc.ssltunnel.utilities.threading.shutdownthreadpoolexecutor$1.run(shutdownthreadpoolexecutor.java:36) @ java.util.concurrent.executors$runnableadapter.call(unknown source) @ java.util.concurrent.futuretask.run(unknown source) @ java.util.concurrent.threadpoolexecutor.runworker(unknown source) @ java.util.concurrent.threadpoolexecutor$worker.run(unknown source) @ java.lang.thread.run(unknown source) caused by: com.mchange.v2.resourcepool.cannotacquireresourceexception: resourcepool not acquire resource primary mill or source. @ com.mchange.v2.resourcepool.basicresourcepool.awaitavailable(basicresourcepool.java:1418) @ com.mchange.v2.resourcepool.basicresourcepool.prelimcheckoutresource(basicresourcepool.java:606) @ com.mchange.v2.resourcepool.basicresourcepool.checkoutresource(basicresourcepool.java:526) @ com.mchange.v2.c3p0.impl.c3p0pooledconnectionpool.checkoutandmarkconnectioninuse(c3p0pooledconnectionpool.java:755) @ com.mchange.v2.c3p0.impl.c3p0pooledconnectionpool.checkoutpooledconnection(c3p0pooledconnectionpool.java:682) ... 12 more
can please help me whats wrong config/code?
the problem generally
transaction.begin() not called straight or indirectly. can b e problem session, sessionfactory or configuraitons
you can debug by, doing query session object, if test query works add together transaction , , bigin(), commit() appropriately
java sql-server connection-pooling spring-jdbc
Comments
Post a Comment