[5/31/16 0:03:07:504 IST] 00000036 ThreadMonitor W WSVR0605W:线程 " WebContainer:7" (00000032)已激活615004毫秒 并且可能会被挂起服务器中总共有1个线程 可能会挂。在java.lang.Object.wait(Native Method)at java.lang.Object.wait(Object.java:196)at com.mchange.v2.resourcepool.BasicResourcePool.awaitAvailable(BasicResourcePool.java:1414) 在 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) 在 com.mchange.v2.c3p0.impl.AbstractPoolBackedDataSource.getConnection(AbstractPoolBackedDataSource.java:140) 在 org.hibernate.connection.C3P0ConnectionProvider.getConnection(C3P0ConnectionProvider.java:56) 在 org.hibernate.jdbc.ConnectionManager.openConnection(ConnectionManager.java:423) 在 org.hibernate.jdbc.ConnectionManager.getConnection(ConnectionManager.java:144) 在 org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139) 在 org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547) 在org.hibernate.loader.Loader.doQuery(Loader.java:673)at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236) 在org.hibernate.loader.Loader.loadEntity(Loader.java:1860)at org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:48) 在 org.hibernate.loader.entity.AbstractEntityLoader.load(AbstractEntityLoader.java:42) 在 org.hibernate.persister.entity.AbstractEntityPersister.load(AbstractEntityPersister.java:3044) 在 org.hibernate.event.def.DefaultLoadEventListener.loadFromDatasource(DefaultLoadEventListener.java:395) 在 org.hibernate.event.def.DefaultLoadEventListener.doLoad(DefaultLoadEventListener.java:375) 在 org.hibernate.event.def.DefaultLoadEventListener.load(DefaultLoadEventListener.java:139) 在 org.hibernate.event.def.DefaultLoadEventListener.proxyOrLoad(DefaultLoadEventListener.java:195) 在 org.hibernate.event.def.DefaultLoadEventListener.onLoad(DefaultLoadEventListener.java:103) 在org.hibernate.impl.SessionImpl.fireLoad(SessionImpl.java:878)at org.hibernate.impl.SessionImpl.get(SessionImpl.java:815)at org.hibernate.impl.SessionImpl.get(SessionImpl.java:808)at com.nexstep.travel.administrator.perdiemdomestic.dao.PerDiemDomesticMstDAO.validateTravelSettleAmtWithPerDiem(PerDiemDomesticMstDAO.java:727) 在 com.nexstep.travel.administrator.perdiemdomestic.service.PerDiemDomesticMasterBLOServiceImp.validateTravelSettleAmtWithPerDiem(PerDiemDomesticMasterBLOServiceImp.java:521) 在 com.nexstep.travel.administrator.perdiemdomestic.service.PerDiemDomesticMasterServiceImp.validateTravelSettleAmtWithPerDiem(PerDiemDomesticMasterServiceImp.java:261) 在 com.nexstep.framework.budgeting.ajaxutility.AjaxBudgetingUtility.validateTSAmtWithPerDiem(AjaxBudgetingUtility.java:5610) 在sun.reflect.GeneratedMethodAccessor1553.invoke(未知来源)at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:37) 在java.lang.reflect.Method.invoke(Method.java:599)at org.directwebremoting.impl.ExecuteAjaxFilter.doFilter(ExecuteAjaxFilter.java:34) 在 org.directwebremoting.impl.DefaultRemoter $ 1.doFilter(DefaultRemoter.java:428) 在 org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:431) 在 org.directwebremoting.impl.DefaultRemoter.execute(DefaultRemoter.java:283) 在 org.directwebremoting.servlet.PlainCallHandler.handle(PlainCallHandler.java:52) 在 org.directwebremoting.servlet.UrlProcessor.handle(UrlProcessor.java:101) 在 org.directwebremoting.servlet.DwrServlet.doPost(DwrServlet.java:146) 在javax.servlet.http.HttpServlet.service(HttpServlet.java:738)at javax.servlet.http.HttpServlet.service(HttpServlet.java:831)at at com.ibm.ws.webcontainer.servlet.ServletWrapper.service(ServletWrapper.java:1443) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:790) 在 com.ibm.ws.webcontainer.servlet.ServletWrapper.handleRequest(ServletWrapper.java:443) 在 com.ibm.ws.webcontainer.servlet.ServletWrapperImpl.handleRequest(ServletWrapperImpl.java:175) 在 com.ibm.ws.webcontainer.servlet.CacheServletWrapper.handleRequest(CacheServletWrapper.java:91) 在 com.ibm.ws.webcontainer.WebContainer.handleRequest(WebContainer.java:859) 在 com.ibm.ws.webcontainer.WSWebContainer.handleRequest(WSWebContainer.java:1557) 在 com.ibm.ws.webcontainer.channel.WCChannelLink.ready(WCChannelLink.java:173) 在 com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleDiscrimination(HttpInboundLink.java:455) 在 com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.handleNewInformation(HttpInboundLink.java:384) 在 com.ibm.ws.http.channel.inbound.impl.HttpInboundLink.ready(HttpInboundLink.java:272) 在 com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.sendToDiscriminators(NewConnectionInitialReadCallback.java:214) 在 com.ibm.ws.tcp.channel.impl.NewConnectionInitialReadCallback.complete(NewConnectionInitialReadCallback.java:113) 在 com.ibm.ws.tcp.channel.impl.AioReadCompletionListener.futureCompleted(AioReadCompletionListener.java:165) 在 com.ibm.io.async.AbstractAsyncFuture.invokeCallback(AbstractAsyncFuture.java:217) 在 com.ibm.io.async.AsyncChannelFuture.fireCompletionActions(AsyncChannelFuture.java:161) 在com.ibm.io.async.AsyncFuture.completed(AsyncFuture.java:138)at at com.ibm.io.async.ResultHandler.complete(ResultHandler.java:202)at at com.ibm.io.async.ResultHandler.runEventProcessingLoop(ResultHandler.java:766) 在com.ibm.io.async.ResultHandler $ 2.run(ResultHandler.java:896)at com.ibm.ws.util.ThreadPool $ Worker.run(ThreadPool.java:1527)
当我们向hibernate.cfg.xml添加c3p0属性时,我们得到了上述异常,当我们尝试注释c3p0相关属性时,应用程序运行正常。
我们在休眠中添加的属性如下:
<property name="hibernate.bytecode.use_reflection_optimizer">false</property>
<property name="hibernate.connection.driver_class">net.sourceforge.jtds.jdbc.Driver</property>
<property name="hibernate.connection.password">ADMIN</property>
<property name="hibernate.connection.url">jdbc:jtds:sqlserver://localhost/TEST</property>
<property name="hibernate.connection.username">ADMIN</property>
<property name="hibernate.dialect">org.hibernate.dialect.SQLServerDialect</property>
<property name="hibernate.search.autoregister_listeners">false</property>
<property name="c3p0.min_size">1</property>
<property name="c3p0.max_size">100</property>
<property name="c3p0.timeout">3600</property>
<property name="c3p0.max_statements">50</property>
<property name="connection.provider_class">org.hibernate.connection.C3P0ConnectionProvider</property>
任何人都可以告诉我们在这里导致连接泄漏的原因是什么,此外,应用程序仅在我们测试区域的生产中挂起,上述属性运行良好。
请建议我们如何解决此问题。