2014-11-06 5 views
0

내 소프트웨어에서 파이프가 끊어지는 문제가 있습니다. C3P0와 함께 최대 절전 모드 4.3.7 및 JPA 2.1 최종 버전을 사용하고 있지만, MySQL을 만료 할 때 모든 것을 시도했지만 여전히 깨진 파이프를 제공합니다. 바람둥이에서jpa 2.1, Hibernate 4.3.7 및 C3P0이있는 깨진 파이프

로그 : 여기

ERROR: The last packet successfully received from the server was 57,069,477 milliseconds ago. The last packet sent successfully to the server was 57,069,477 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem. 
Nov 06, 2014 8:27:23 AM com.sun.faces.lifecycle.InvokeApplicationPhase execute 
WARNING: #{controleLogin.efetuarLogin()}: javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: could not extract ResultSet 
javax.faces.FacesException: #{controleLogin.efetuarLogin()}: javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: could not extract ResultSet 
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:118) 
    at javax.faces.component.UICommand.broadcast(UICommand.java:315) 
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) 
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) 
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:72) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:744) 
Caused by: javax.faces.el.EvaluationException: javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: could not extract ResultSet 
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101) 
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) 
    ... 26 more 
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: could not extract ResultSet 
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1763) 
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1677) 
    at org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:458) 
    at br.com.clikyapp1.modelo.UsuarioDAO.login(UsuarioDAO.java:26) 
    at br.com.clikyapp1.controle.ControleLogin.efetuarLogin(ControleLogin.java:29) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.el.parser.AstValue.invoke(AstValue.java:278) 
    at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274) 
    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) 
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87) 
    ... 27 more 
Caused by: org.hibernate.exception.JDBCConnectionException: could not extract ResultSet 
    at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:132) 
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49) 
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126) 
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112) 
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:91) 
    at org.hibernate.loader.Loader.getResultSet(Loader.java:2066) 
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1863) 
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1839) 
    at org.hibernate.loader.Loader.doQuery(Loader.java:910) 
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:355) 
    at org.hibernate.loader.Loader.doList(Loader.java:2554) 
    at org.hibernate.loader.Loader.doList(Loader.java:2540) 
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2370) 
    at org.hibernate.loader.Loader.list(Loader.java:2365) 
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:497) 
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387) 
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:236) 
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1264) 
    at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103) 
    at org.hibernate.jpa.internal.QueryImpl.list(QueryImpl.java:573) 
    at org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:449) 
    ... 37 more 
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 57,069,477 milliseconds ago. The last packet sent successfully to the server was 57,069,477 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem. 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:408) 
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1137) 
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3983) 
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2596) 
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776) 
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2840) 
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2082) 
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2212) 
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:116) 
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:82) 
    ... 53 more 
Caused by: java.net.SocketException: Broken pipe 
    at java.net.SocketOutputStream.socketWrite0(Native Method) 
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113) 
    at java.net.SocketOutputStream.write(SocketOutputStream.java:159) 
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) 
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) 
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3964) 
    ... 60 more 

Nov 06, 2014 8:27:23 AM com.sun.faces.context.AjaxExceptionHandlerImpl handlePartialResponseError 
SEVERE: javax.faces.el.EvaluationException: javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: could not extract ResultSet 
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:101) 
    at com.sun.faces.application.ActionListenerImpl.processAction(ActionListenerImpl.java:102) 
    at javax.faces.component.UICommand.broadcast(UICommand.java:315) 
    at javax.faces.component.UIViewRoot.broadcastEvents(UIViewRoot.java:790) 
    at javax.faces.component.UIViewRoot.processApplication(UIViewRoot.java:1282) 
    at com.sun.faces.lifecycle.InvokeApplicationPhase.execute(InvokeApplicationPhase.java:81) 
    at com.sun.faces.lifecycle.Phase.doPhase(Phase.java:101) 
    at com.sun.faces.lifecycle.LifecycleImpl.execute(LifecycleImpl.java:198) 
    at javax.faces.webapp.FacesServlet.service(FacesServlet.java:646) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.primefaces.webapp.filter.FileUploadFilter.doFilter(FileUploadFilter.java:72) 
    at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
    at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
    at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
    at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
    at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
    at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171) 
    at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
    at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:936) 
    at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
    at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
    at org.apache.coyote.ajp.AjpProcessor.process(AjpProcessor.java:200) 
    at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:589) 
    at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310) 
    at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) 
    at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) 
    at java.lang.Thread.run(Thread.java:744) 
Caused by: javax.persistence.PersistenceException: org.hibernate.exception.JDBCConnectionException: could not extract ResultSet 
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1763) 
    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert(AbstractEntityManagerImpl.java:1677) 
    at org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:458) 
    at br.com.clikyapp1.modelo.UsuarioDAO.login(UsuarioDAO.java:26) 
    at br.com.clikyapp1.controle.ControleLogin.efetuarLogin(ControleLogin.java:29) 
    at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) 
    at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) 
    at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) 
    at java.lang.reflect.Method.invoke(Method.java:606) 
    at org.apache.el.parser.AstValue.invoke(AstValue.java:278) 
    at org.apache.el.MethodExpressionImpl.invoke(MethodExpressionImpl.java:274) 
    at com.sun.faces.facelets.el.TagMethodExpression.invoke(TagMethodExpression.java:105) 
    at javax.faces.component.MethodBindingMethodExpressionAdapter.invoke(MethodBindingMethodExpressionAdapter.java:87) 
    ... 27 more 
Caused by: org.hibernate.exception.JDBCConnectionException: could not extract ResultSet 
    at org.hibernate.exception.internal.SQLStateConversionDelegate.convert(SQLStateConversionDelegate.java:132) 
    at org.hibernate.exception.internal.StandardSQLExceptionConverter.convert(StandardSQLExceptionConverter.java:49) 
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:126) 
    at org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert(SqlExceptionHelper.java:112) 
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:91) 
    at org.hibernate.loader.Loader.getResultSet(Loader.java:2066) 
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1863) 
    at org.hibernate.loader.Loader.executeQueryStatement(Loader.java:1839) 
    at org.hibernate.loader.Loader.doQuery(Loader.java:910) 
    at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:355) 
    at org.hibernate.loader.Loader.doList(Loader.java:2554) 
    at org.hibernate.loader.Loader.doList(Loader.java:2540) 
    at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2370) 
    at org.hibernate.loader.Loader.list(Loader.java:2365) 
    at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:497) 
    at org.hibernate.hql.internal.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:387) 
    at org.hibernate.engine.query.spi.HQLQueryPlan.performList(HQLQueryPlan.java:236) 
    at org.hibernate.internal.SessionImpl.list(SessionImpl.java:1264) 
    at org.hibernate.internal.QueryImpl.list(QueryImpl.java:103) 
    at org.hibernate.jpa.internal.QueryImpl.list(QueryImpl.java:573) 
    at org.hibernate.jpa.internal.QueryImpl.getResultList(QueryImpl.java:449) 
    ... 37 more 
Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 57,069,477 milliseconds ago. The last packet sent successfully to the server was 57,069,477 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem. 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) 
    at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57) 
    at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45) 
    at java.lang.reflect.Constructor.newInstance(Constructor.java:526) 
    at com.mysql.jdbc.Util.handleNewInstance(Util.java:408) 
    at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1137) 
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3983) 
    at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2596) 
    at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2776) 
    at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2840) 
    at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2082) 
    at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2212) 
    at com.mchange.v2.c3p0.impl.NewProxyPreparedStatement.executeQuery(NewProxyPreparedStatement.java:116) 
    at org.hibernate.engine.jdbc.internal.ResultSetReturnImpl.extract(ResultSetReturnImpl.java:82) 
    ... 53 more 
Caused by: java.net.SocketException: Broken pipe 
    at java.net.SocketOutputStream.socketWrite0(Native Method) 
    at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:113) 
    at java.net.SocketOutputStream.write(SocketOutputStream.java:159) 
    at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) 
    at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) 
    at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3964) 
    ... 60 more 

내 persistence.xml을

<?xml version="1.0" encoding="UTF-8"?> 
http://xmlns.jcp.org/xml/ns/persistence/persistence_2_1.xsd"> 

<persistence-unit name="clikyapp1"> 

    <provider>org.hibernate.jpa.HibernatePersistenceProvider</provider> 

    <class>br.com.clikyapp1.bean.Cultura</class> 
    <class>br.com.clikyapp1.bean.Cidade</class> 
    <class>br.com.clikyapp1.bean.Estado</class> 
    <class>br.com.clikyapp1.bean.TipoDespesa</class> 
    <class>br.com.clikyapp1.bean.Safra</class> 
    <class>br.com.clikyapp1.bean.TipoContrato</class> 
    <class>br.com.clikyapp1.bean.Area</class> 
    <class>br.com.clikyapp1.bean.Armazem</class> 
    <class>br.com.clikyapp1.bean.Conta</class> 
    <class>br.com.clikyapp1.bean.Parceiro</class> 
    <class>br.com.clikyapp1.bean.Usuario</class> 
    <class>br.com.clikyapp1.bean.Contrato</class> 
    <properties> 
     <property name="javax.persistence.jdbc.user" value="root" /> 
     <property name="javax.persistence.jdbc.password" value="senha" /> 
     <property name="javax.persistence.jdbc.url" value="jdbc:mysql://localhost:3306/clikyapp1" /> 
     <property name="javax.persistence.jdbc.driver" value="com.mysql.jdbc.Driver" /> 
     <property name="hibernate.cache.provider_class" value="org.hibernate.cache.NoCacheProvider" /> 
     <property name="hibernate.dialect" value="org.hibernate.dialect.MySQL5Dialect" /> 
     <property name="hibernate.connection.autocommit" value="false" /> 
     <property name="hibernate.hbm2ddl.auto" value="update" /> 

     <property name="hibernate.connection.provider_class" 
      value="org.hibernate.connection.C3P0ConnectionProvider" /> 

     <property name="hibernate.c3p0.acquire_increment" value="1" /> 
     <property name="hibernate.c3p0.idle_test_period" value="100" /> 
     <property name="hibernate.c3p0.timeout" value="1800" /> 
     <property name="hibernate.c3p0.max_size" value="5" /> 
     <property name="hibernate.c3p0.min_size" value="3" /> 
     <property name="hibernate.c3p0.max_statement" value="50" /> 
     <property name="hibernate.c3p0.preferredTestQuery" value="select 1;" /> 

     <property name="hibernate.c3p0.interactive_timeout" value="10" /> 
     <property name="hibernate.c3p0.connect_timeout" value="20" /> 
    </properties> 
</persistence-unit> 

어떤 생각인가?

+0

JSF는 결국 HTML을 생성하는 프레임 워크입니다. 그것은 서비스 및 데이터 액세스 계층과 관련이 없으며 사용자가 전혀 사용하지 않는 데이터베이스 엔진과 관련이 없습니다. –

+0

C3P0 구성에 문제가있는 것 같습니다. C3P0 구성을 게시하거나 BoneCP와 같은 다른 데이터베이스 연결 풀 공급자 (HikariCP 대신 사용되지 않음)로 마이그레이션하는 것이 좋습니다. –

+0

글쎄, 오류 메시지에서 제안한대로'autoReconnect = true'를 설정 했습니까? –

답변

0

1) c3p0 설정에 오타가 있습니다.

<property name="hibernate.c3p0.max_statement" value="50" /> 

<property name="hibernate.c3p0.max_statements" value="50" /> 

2)

<property name="hibernate.c3p0.preferredTestQuery" value="select 1;" /> 

에서이 ... 세미콜론을 제거해야합니다. 그건 그냥 ...

<property name="hibernate.c3p0.preferredTestQuery" value="select 1" /> 

3)이 두 속성은 유효 C3P0 구성하지 않습니다이다 : 당신은 MySQL 서버의 속성을 설정하려고처럼

<property name="hibernate.c3p0.interactive_timeout" value="10" /> 
    <property name="hibernate.c3p0.connect_timeout" value="20" /> 

것 같습니다. interactive_timout은 부적합합니다. 그것은 mysql 커맨드 라인 도구를위한 구성 매개 변수입니다. connect_timout (및 wait_timeout)는 set on the server side

4) 원하는 설정이 구성 C3P0 실제로보고있는 것을 확인할 수 있습니다 system variables 있습니다. c3p0은 풀 초기화시 INFO에 설정을 덤프합니다. 저것 봐.

5) 의도 한 구성이 완료되었다고 가정하면 신뢰할 수있는 테스트 체제가 구성되어 있지 않습니다. 유휴 연결을 자주 테스트하고 있지만 이론상 바쁜 풀은 연결 테스트를 길게 유휴 상태로 두지 않을 수 있습니다. MySQL이 사용량이 많은 Connection보다는 오히려 사용되지 않는 것에 대해 불평한다는 점을 감안할 때 이것은 문제가되지 않을 것입니다. 하지만 여전히 impose a better testing regimetestConnectionOnCheckin에서 true으로 설정하는 것이 좋습니다.

6) 구성권을 얻은 후에도 여전히 오류가 표시되면 필요한 경우 응용 프로그램을 (예 : 멤버 변수로) 오랫동안 Connections에 보유하고있는 것일 수 있습니다 그 (것)들을 즉시 닫으십시오. 그건 나쁜 생각이야. 응용 프로그램이 체크 아웃 상태를 유지하는 경우 c3p0은 연결을 항상 유지할 수 없으며 연결 풀의 요점은 Just-In-Time Connection 체크 아웃의 성능 비용을 없애는 것입니다. 그래서 고쳐주세요.

애플리케이션에서 오랫동안 어떤 연결이 열려 있다고 생각하지 않거나 생각하지 않는 경우 unreturnedConnectionTimeoutdebugUnreturnedConnectionStackTraces 두 가지 설정을 사용할 수 있습니다. 첫 x 째는 강제로 풀에 리턴되도록 구성된 초 수 이상으로 클라이언트 응용 프로그램에서 열린 모든 연결을 발생시킵니다. 두 번째는 잘못된 Connection을 체크 아웃하는 코드의 스택 추적이 로그에 덤프되도록합니다. here을 참조하십시오.