i having issue c3p0 apparent dead. have looked many other related questions on here not resolve issue. if can suggest possible solution thankful!
c3p0 version: c3p0-0.9.5.2
c3p0 configuration xml file
<bean id="datasource" class="com.mchange.v2.c3p0.combopooleddatasource" destroy-method="close"> <property name="driverclass" value="oracle.jdbc.driver.oracledriver" /> <property name="jdbcurl" value="jdbc:oracle:thin:@transport-crash-ora-tst.cee.wisc.edu:1521:dtcrdbt" /> <property name="user" value="transdev" /> <property name="password" value="its2$123" /> <property name="maxpoolsize" value="10" /> <property name="maxstatements" value="0" /> <property name="minpoolsize" value="5" /> <property name="statementcachenumdeferredclosethreads" value="1"></property> </bean>
messages in console view
[localhost-startstop-1] info com.mchange.v2.c3p0.c3p0registry - initializing c3p0-0.9.5.2 [built 08-december-2015 22:06:04 -0800; debug? true; trace: 10] error statuslogger no log4j2 configuration file found. using default configuration: logging errors console. [localhost-startstop-1] info com.mchange.v2.c3p0.impl.abstractpoolbackeddatasource - initializing c3p0 pool... com.mchange.v2.c3p0.combopooleddatasource [ acquireincrement -> 3, acquireretryattempts -> 30, acquireretrydelay -> 1000, autocommitonclose -> false, automatictesttable -> null, breakafteracquirefailure -> false, checkouttimeout -> 0, connectioncustomizerclassname -> null, connectiontesterclassname -> com.mchange.v2.c3p0.impl.defaultconnectiontester, contextclassloadersource -> caller, datasourcename -> 72r5me9i3xucoj6ds3mi|10319844, debugunreturnedconnectionstacktraces -> false, description -> null, driverclass -> oracle.jdbc.driver.oracledriver, extensions -> {}, factoryclasslocation -> null, forceignoreunresolvedtransactions -> false, forcesynchronouscheckins -> false, forceusenameddriverclass -> false, identitytoken -> 72r5me9i3xucoj6ds3mi|10319844, idleconnectiontestperiod -> 0, initialpoolsize -> 3, jdbcurl -> jdbc:oracle:thin:@transport-crash-ora-tst.cee.wisc.edu:1521:dtcrdbt, maxadministrativetasktime -> 0, maxconnectionage -> 0, maxidletime -> 0, maxidletimeexcessconnections -> 0, maxpoolsize -> 10, maxstatements -> 0, maxstatementsperconnection -> 0, minpoolsize -> 5, numhelperthreads -> 3, preferredtestquery -> null, privilegespawnedthreads -> false, properties -> {user=******, password=******}, propertycycle -> 0, statementcachenumdeferredclosethreads -> 1, testconnectiononcheckin -> false, testconnectiononcheckout -> false, unreturnedconnectiontimeout -> 0, useroverrides -> {}, usestraditionalreflectiveproxies -> false ] [localhost-startstop-1] warn com.mchange.v2.resourcepool.basicresourcepool - bad pool size config, start 3 < min 5. using 5 start. [c3p0pooledconnectionpoolmanager[identitytoken->72r5me9i3xucoj6ds3mi|10319844]-admintasktimer] warn com.mchange.v2.async.threadpoolasynchronousrunner - com.mchange.v2.async.threadpoolasynchronousrunner$deadlockdetector@7bd1346f -- apparent deadlock!!! creating emergency threads unassigned pending tasks! [c3p0pooledconnectionpoolmanager[identitytoken->72r5me9i3xucoj6ds3mi|10319844]-admintasktimer] warn com.mchange.v2.async.threadpoolasynchronousrunner - com.mchange.v2.async.threadpoolasynchronousrunner$deadlockdetector@7bd1346f -- apparent deadlock!!! complete status: managed threads: 3 active threads: 3 active tasks: com.mchange.v2.resourcepool.basicresourcepool$scatteredacquiretask@342bcf5e on thread: c3p0pooledconnectionpoolmanager[identitytoken->72r5me9i3xucoj6ds3mi|10319844]-helperthread-#2 com.mchange.v2.resourcepool.basicresourcepool$scatteredacquiretask@46abe7f8 on thread: c3p0pooledconnectionpoolmanager[identitytoken->72r5me9i3xucoj6ds3mi|10319844]-helperthread-#1 com.mchange.v2.resourcepool.basicresourcepool$scatteredacquiretask@5d53fa5 on thread: c3p0pooledconnectionpoolmanager[identitytoken->72r5me9i3xucoj6ds3mi|10319844]-helperthread-#0 pending tasks: com.mchange.v2.resourcepool.basicresourcepool$scatteredacquiretask@3ebf49a7 com.mchange.v2.resourcepool.basicresourcepool$scatteredacquiretask@54043011 pool thread stack traces: thread[c3p0pooledconnectionpoolmanager[identitytoken->72r5me9i3xucoj6ds3mi|10319844]-helperthread-#2,5,main] java.net.plainsocketimpl.socketconnect(native method) java.net.abstractplainsocketimpl.doconnect(abstractplainsocketimpl.java:350) java.net.abstractplainsocketimpl.connecttoaddress(abstractplainsocketimpl.java:206) java.net.abstractplainsocketimpl.connect(abstractplainsocketimpl.java:188) java.net.sockssocketimpl.connect(sockssocketimpl.java:392) java.net.socket.connect(socket.java:589) oracle.net.nt.tcpntadapter.connect(tcpntadapter.java:162) oracle.net.nt.connoption.connect(connoption.java:133) oracle.net.nt.connstrategy.execute(connstrategy.java:411) oracle.net.resolver.addrresolution.resolveandexecute(addrresolution.java:464) oracle.net.ns.nsprotocol.establishconnection(nsprotocol.java:594) oracle.net.ns.nsprotocol.connect(nsprotocol.java:229) oracle.jdbc.driver.t4cconnection.connect(t4cconnection.java:1360) oracle.jdbc.driver.t4cconnection.logon(t4cconnection.java:486) oracle.jdbc.driver.physicalconnection.<init>(physicalconnection.java:715) oracle.jdbc.driver.t4cconnection.<init>(t4cconnection.java:385) oracle.jdbc.driver.t4cdriverextension.getconnection(t4cdriverextension.java:30) oracle.jdbc.driver.oracledriver.connect(oracledriver.java:564) com.mchange.v2.c3p0.drivermanagerdatasource.getconnection(drivermanagerdatasource.java:175) com.mchange.v2.c3p0.wrapperconnectionpooldatasource.getpooledconnection(wrapperconnectionpooldatasource.java:220) com.mchange.v2.c3p0.wrapperconnectionpooldatasource.getpooledconnection(wrapperconnectionpooldatasource.java:206) com.mchange.v2.c3p0.impl.c3p0pooledconnectionpool$1pooledconnectionresourcepoolmanager.acquireresource(c3p0pooledconnectionpool.java:203) com.mchange.v2.resourcepool.basicresourcepool.doacquire(basicresourcepool.java:1138) com.mchange.v2.resourcepool.basicresourcepool.doacquireanddecrementpendingacquireswithinlockonsuccess(basicresourcepool.java:1125) com.mchange.v2.resourcepool.basicresourcepool.access$700(basicresourcepool.java:44) com.mchange.v2.resourcepool.basicresourcepool$scatteredacquiretask.run(basicresourcepool.java:1870) com.mchange.v2.async.threadpoolasynchronousrunner$poolthread.run(threadpoolasynchronousrunner.java:696) thread[c3p0pooledconnectionpoolmanager[identitytoken->72r5me9i3xucoj6ds3mi|10319844]-helperthread-#0,5,main] java.net.plainsocketimpl.socketconnect(native method) java.net.abstractplainsocketimpl.doconnect(abstractplainsocketimpl.java:350) java.net.abstractplainsocketimpl.connecttoaddress(abstractplainsocketimpl.java:206) java.net.abstractplainsocketimpl.connect(abstractplainsocketimpl.java:188) java.net.sockssocketimpl.connect(sockssocketimpl.java:392) java.net.socket.connect(socket.java:589) oracle.net.nt.tcpntadapter.connect(tcpntadapter.java:162) oracle.net.nt.connoption.connect(connoption.java:133) oracle.net.nt.connstrategy.execute(connstrategy.java:411) oracle.net.resolver.addrresolution.resolveandexecute(addrresolution.java:464) oracle.net.ns.nsprotocol.establishconnection(nsprotocol.java:594) oracle.net.ns.nsprotocol.connect(nsprotocol.java:229) oracle.jdbc.driver.t4cconnection.connect(t4cconnection.java:1360) oracle.jdbc.driver.t4cconnection.logon(t4cconnection.java:486) oracle.jdbc.driver.physicalconnection.<init>(physicalconnection.java:715) oracle.jdbc.driver.t4cconnection.<init>(t4cconnection.java:385) oracle.jdbc.driver.t4cdriverextension.getconnection(t4cdriverextension.java:30) oracle.jdbc.driver.oracledriver.connect(oracledriver.java:564) com.mchange.v2.c3p0.drivermanagerdatasource.getconnection(drivermanagerdatasource.java:175) com.mchange.v2.c3p0.wrapperconnectionpooldatasource.getpooledconnection(wrapperconnectionpooldatasource.java:220) com.mchange.v2.c3p0.wrapperconnectionpooldatasource.getpooledconnection(wrapperconnectionpooldatasource.java:206) com.mchange.v2.c3p0.impl.c3p0pooledconnectionpool$1pooledconnectionresourcepoolmanager.acquireresource(c3p0pooledconnectionpool.java:203) com.mchange.v2.resourcepool.basicresourcepool.doacquire(basicresourcepool.java:1138) com.mchange.v2.resourcepool.basicresourcepool.doacquireanddecrementpendingacquireswithinlockonsuccess(basicresourcepool.java:1125) com.mchange.v2.resourcepool.basicresourcepool.access$700(basicresourcepool.java:44) com.mchange.v2.resourcepool.basicresourcepool$scatteredacquiretask.run(basicresourcepool.java:1870) com.mchange.v2.async.threadpoolasynchronousrunner$poolthread.run(threadpoolasynchronousrunner.java:696) thread[c3p0pooledconnectionpoolmanager[identitytoken->72r5me9i3xucoj6ds3mi|10319844]-helperthread-#1,5,main] java.net.plainsocketimpl.socketconnect(native method) java.net.abstractplainsocketimpl.doconnect(abstractplainsocketimpl.java:350) java.net.abstractplainsocketimpl.connecttoaddress(abstractplainsocketimpl.java:206) java.net.abstractplainsocketimpl.connect(abstractplainsocketimpl.java:188) java.net.sockssocketimpl.connect(sockssocketimpl.java:392) java.net.socket.connect(socket.java:589) oracle.net.nt.tcpntadapter.connect(tcpntadapter.java:162) oracle.net.nt.connoption.connect(connoption.java:133) oracle.net.nt.connstrategy.execute(connstrategy.java:411) oracle.net.resolver.addrresolution.resolveandexecute(addrresolution.java:464) oracle.net.ns.nsprotocol.establishconnection(nsprotocol.java:594) oracle.net.ns.nsprotocol.connect(nsprotocol.java:229) oracle.jdbc.driver.t4cconnection.connect(t4cconnection.java:1360) oracle.jdbc.driver.t4cconnection.logon(t4cconnection.java:486) oracle.jdbc.driver.physicalconnection.<init>(physicalconnection.java:715) oracle.jdbc.driver.t4cconnection.<init>(t4cconnection.java:385) oracle.jdbc.driver.t4cdriverextension.getconnection(t4cdriverextension.java:30) oracle.jdbc.driver.oracledriver.connect(oracledriver.java:564) com.mchange.v2.c3p0.drivermanagerdatasource.getconnection(drivermanagerdatasource.java:175) com.mchange.v2.c3p0.wrapperconnectionpooldatasource.getpooledconnection(wrapperconnectionpooldatasource.java:220) com.mchange.v2.c3p0.wrapperconnectionpooldatasource.getpooledconnection(wrapperconnectionpooldatasource.java:206) com.mchange.v2.c3p0.impl.c3p0pooledconnectionpool$1pooledconnectionresourcepoolmanager.acquireresource(c3p0pooledconnectionpool.java:203) com.mchange.v2.resourcepool.basicresourcepool.doacquire(basicresourcepool.java:1138) com.mchange.v2.resourcepool.basicresourcepool.doacquireanddecrementpendingacquireswithinlockonsuccess(basicresourcepool.java:1125) com.mchange.v2.resourcepool.basicresourcepool.access$700(basicresourcepool.java:44) com.mchange.v2.resourcepool.basicresourcepool$scatteredacquiretask.run(basicresourcepool.java:1870) com.mchange.v2.async.threadpoolasynchronousrunner$poolthread.run(threadpoolasynchronousrunner.java:696)
threads trying acquire connections dbms neither succeeding, nor failing exception. freezing. issue you'll need debug. may kind of network / firewall-ish kind of issue. example, on aws, attempting connect machine or service without configuration of security group permit connection leads such hangs.
a first thing make sure can connect wherever app lives using drivermanager.getconnection().
(if want, can temporarily change "com.mchange.v2.c3p0.combopooleddatasource" "com.mchange.v2.c3p0.drivermanagerdatasource" in bean xml, , see if things "work". performance poor, because drivermanagerdatasource no pooling, can see whether or client threads hang when trying acquire connections.)
if app able acquire connections, hang this, , not able resolve hang, can try working around 2 c3p0 config properties:
maxadministrativetasktime lets set timeout after c3p0's thread pool try interrupt() frozen tasks
numhelperthreads lets increase number of threads have caught freeze before start seeing apparent deadlock
messages.
Comments
Post a Comment