获取SQLServerException makeFromDriverError消息“无法准备语句”和“连接已关闭”

时间:2019-04-27 14:23:44

标签: java sql sql-server hibernate c3p0

最近随着我的生产应用程序在用户中的增长,我已经开始收到以下错误(成千上万):

  

org.hibernate.exception.GenericJDBCException:无法准备   声明       问题ID:com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError上的com.microsoft.sqlserver.jdbc.SQLServerException

     

连接已关闭。       问题ID:com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError上的com.microsoft.sqlserver.jdbc.SQLServerException

这是完整的错误:

 javax.persistence.PersistenceException:    at org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert
 (AbstractEntityManagerImpl.java1763)    at
 org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert
 (AbstractEntityManagerImpl.java1694)    at
 org.hibernate.jpa.spi.AbstractEntityManagerImpl.find
 (AbstractEntityManagerImpl.java1141)    at
 org.hibernate.jpa.spi.AbstractEntityManagerImpl.find
 (AbstractEntityManagerImpl.java1068)    at
 sun.reflect.GeneratedMethodAccessor65.invoke    at
 sun.reflect.DelegatingMethodAccessorImpl.invoke
 (DelegatingMethodAccessorImpl.java43)    at
 java.lang.reflect.Method.invoke (Method.java498)    at
 org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke
 (SharedEntityManagerCreator.java241)    at com.sun.proxy.$Proxy51.find
 at com.adaptive.xxxxxxx.data.JPAPersistenceAdapter.find
 (JPAPersistenceAdapter.java27)    at
 com.adaptive.xxxxxxxxx.data.ChangeSetApplier2.applyChange
 (ChangeSetApplier2.java257)    at
 com.adaptive.xxxxxxxx.data.ChangeSetApplier2.applyChanges
 (ChangeSetApplier2.java59)    at
 com.adaptive.xxxxxxxx.services.EntityServiceImpl.applyChangeSet
 (EntityServiceImpl.java64)    at
 sun.reflect.GeneratedMethodAccessor98.invoke    at
 sun.reflect.DelegatingMethodAccessorImpl.invoke
 (DelegatingMethodAccessorImpl.java43)    at
 java.lang.reflect.Method.invoke (Method.java498)    at
 org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection
 (AopUtils.java317)    at
 org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint
 (ReflectiveMethodInvocation.java183)    at
 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed
 (ReflectiveMethodInvocation.java150)    at
 org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke
 (MethodSecurityInterceptor.java64)    at
 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed
 (ReflectiveMethodInvocation.java172)    at
 org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation
 (TransactionInterceptor.java96)    at
 org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction
 (TransactionAspectSupport.java260)    at
 org.springframework.transaction.interceptor.TransactionInterceptor.invoke
 (TransactionInterceptor.java94)    at
 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed
 (ReflectiveMethodInvocation.java172)    at
 org.granite.tide.spring.TideDataPublishingInterceptor$1.call
 (TideDataPublishingInterceptor.java78)    at
 org.granite.tide.spring.TideDataPublishingWrapper.execute
 (TideDataPublishingWrapper.java127)    at
 org.granite.tide.spring.TideDataPublishingInterceptor.invoke
 (TideDataPublishingInterceptor.java75)    at
 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed
 (ReflectiveMethodInvocation.java172)    at
 org.springframework.aop.framework.JdkDynamicAopProxy.invoke
 (JdkDynamicAopProxy.java204)    at
 com.sun.proxy.$Proxy61.applyChangeSet    at
 sun.reflect.GeneratedMethodAccessor736.invoke    at
 sun.reflect.DelegatingMethodAccessorImpl.invoke
 (DelegatingMethodAccessorImpl.java43)    at
 java.lang.reflect.Method.invoke (Method.java498)    at
 org.granite.messaging.service.ServiceInvocationContext.invoke
 (ServiceInvocationContext.java72)    at
 org.granite.messaging.service.security.AbstractSecurityService.endAuthorization
 (AbstractSecurityService.java108)    at
 org.granite.spring.security.SpringSecurity3Service.authorize
 (SpringSecurity3Service.java294)    at
 org.granite.messaging.service.ServiceInvoker.invoke
 (ServiceInvoker.java220)    at
 org.granite.messaging.amf.process.AMF3MessageProcessor.processRemotingMessage
 (AMF3MessageProcessor.java141)    at
 org.granite.messaging.amf.process.AMF3MessageProcessor.process
 (AMF3MessageProcessor.java60)    at
 org.granite.messaging.amf.process.AMF0MessageProcessor.process
 (AMF0MessageProcessor.java79)    at
 org.granite.messaging.webapp.AMFEndpoint.serviceAMF
 (AMFEndpoint.java91)    at
 org.granite.messaging.webapp.AMFEndpoint.service (AMFEndpoint.java66) 
 at org.granite.spring.ServerFilter.handle (ServerFilter.java331)    at
 org.springframework.web.servlet.DispatcherServlet.doDispatch
 (DispatcherServlet.java925)    at
 org.springframework.web.servlet.DispatcherServlet.doService
 (DispatcherServlet.java856)    at
 org.springframework.web.servlet.FrameworkServlet.processRequest
 (FrameworkServlet.java936)    at
 org.springframework.web.servlet.FrameworkServlet.doPost
 (FrameworkServlet.java838)    at
 javax.servlet.http.HttpServlet.service (HttpServlet.java648)    at
 org.springframework.web.servlet.FrameworkServlet.service
 (FrameworkServlet.java812)    at
 javax.servlet.http.HttpServlet.service (HttpServlet.java729)    at
 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
 (ApplicationFilterChain.java292)    at
 org.apache.catalina.core.ApplicationFilterChain.doFilter
 (ApplicationFilterChain.java207)    at
 org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java52)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
 (ApplicationFilterChain.java240)    at
 org.apache.catalina.core.ApplicationFilterChain.doFilter
 (ApplicationFilterChain.java207)    at
 com.adaptive.xxxxxxxxx.servlet.CacheControlFilter.doFilter
 (CacheControlFilter.java13)    at
 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
 (ApplicationFilterChain.java240)    at
 org.apache.catalina.core.ApplicationFilterChain.doFilter
 (ApplicationFilterChain.java207)    at
 org.apache.catalina.core.StandardWrapperValve.invoke
 (StandardWrapperValve.java212)    at
 org.apache.catalina.core.StandardContextValve.invoke
 (StandardContextValve.java106)    at
 org.apache.catalina.authenticator.AuthenticatorBase.invoke
 (AuthenticatorBase.java502)    at
 org.apache.catalina.core.StandardHostValve.invoke
 (StandardHostValve.java141)    at
 org.apache.catalina.valves.ErrorReportValve.invoke
 (ErrorReportValve.java79)    at
 org.apache.catalina.valves.AbstractAccessLogValve.invoke
 (AbstractAccessLogValve.java616)    at
 org.apache.catalina.valves.rewrite.RewriteValve.invoke
 (RewriteValve.java480)    at
 org.apache.catalina.core.StandardEngineValve.invoke
 (StandardEngineValve.java88)    at
 org.apache.catalina.connector.CoyoteAdapter.service
 (CoyoteAdapter.java522)    at
 org.apache.coyote.http11.AbstractHttp11Processor.process
 (AbstractHttp11Processor.java1095)    at
 org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process
 (AbstractProtocol.java672)    at
 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun
 (NioEndpoint.java1502)    at
 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run
 (NioEndpoint.java1458)    at
 java.util.concurrent.ThreadPoolExecutor.runWorker
 (ThreadPoolExecutor.java1149)    at
 java.util.concurrent.ThreadPoolExecutor$Worker.run
 (ThreadPoolExecutor.java624)    at
 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run
 (TaskThread.java61)    at java.lang.Thread.run (Thread.java748) Inner
 exception org.hibernate.exception.GenericJDBCException handled at
 org.hibernate.jpa.spi.AbstractEntityManagerImpl.convert:    at
 org.hibernate.exception.internal.StandardSQLExceptionConverter.convert
 (StandardSQLExceptionConverter.java54)    at
 org.hibernate.engine.jdbc.spi.SqlExceptionHelper.convert
 (SqlExceptionHelper.java126)    at
 org.hibernate.engine.jdbc.internal.StatementPreparerImpl$StatementPreparationTemplate.prepareStatement
 (StatementPreparerImpl.java196)    at
 org.hibernate.engine.jdbc.internal.StatementPreparerImpl.prepareQueryStatement
 (StatementPreparerImpl.java160)    at
 org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.prepareQueryStatement
 (AbstractLoadPlanBasedLoader.java257)    at
 org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeQueryStatement
 (AbstractLoadPlanBasedLoader.java201)    at
 org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad
 (AbstractLoadPlanBasedLoader.java137)    at
 org.hibernate.loader.plan.exec.internal.AbstractLoadPlanBasedLoader.executeLoad
 (AbstractLoadPlanBasedLoader.java102)    at
 org.hibernate.loader.entity.plan.AbstractLoadPlanBasedEntityLoader.load
 (AbstractLoadPlanBasedEntityLoader.java186)    at
 org.hibernate.persister.entity.AbstractEntityPersister.load
 (AbstractEntityPersister.java4126)    at
 org.hibernate.event.internal.DefaultLoadEventListener.loadFromDatasource
 (DefaultLoadEventListener.java503)    at
 org.hibernate.event.internal.DefaultLoadEventListener.doLoad
 (DefaultLoadEventListener.java468)    at
 org.hibernate.event.internal.DefaultLoadEventListener.load
 (DefaultLoadEventListener.java213)    at
 org.hibernate.event.internal.DefaultLoadEventListener.proxyOrLoad
 (DefaultLoadEventListener.java275)    at
 org.hibernate.event.internal.DefaultLoadEventListener.onLoad
 (DefaultLoadEventListener.java151)    at
 org.hibernate.internal.SessionImpl.fireLoad (SessionImpl.java1106)   
 at org.hibernate.internal.SessionImpl.access$2000
 (SessionImpl.java176)    at
 org.hibernate.internal.SessionImpl$IdentifierLoadAccessImpl.load
 (SessionImpl.java2587)    at org.hibernate.internal.SessionImpl.get
 (SessionImpl.java991)    at
 org.hibernate.jpa.spi.AbstractEntityManagerImpl.find
 (AbstractEntityManagerImpl.java1110)    at
 org.hibernate.jpa.spi.AbstractEntityManagerImpl.find
 (AbstractEntityManagerImpl.java1068)    at
 sun.reflect.GeneratedMethodAccessor65.invoke    at
 sun.reflect.DelegatingMethodAccessorImpl.invoke
 (DelegatingMethodAccessorImpl.java43)    at
 java.lang.reflect.Method.invoke (Method.java498)    at
 org.springframework.orm.jpa.SharedEntityManagerCreator$SharedEntityManagerInvocationHandler.invoke
 (SharedEntityManagerCreator.java241)    at com.sun.proxy.$Proxy51.find
 at com.adaptive.xxxxxxx.data.JPAPersistenceAdapter.find
 (JPAPersistenceAdapter.java27)    at
 com.adaptive.xxxxxxxxx.data.ChangeSetApplier2.applyChange
 (ChangeSetApplier2.java257)    at
 com.adaptive.xxxxxxxxx.data.ChangeSetApplier2.applyChanges
 (ChangeSetApplier2.java59)    at
 com.adaptive.xxxxxxx.services.EntityServiceImpl.applyChangeSet
 (EntityServiceImpl.java64)    at
 sun.reflect.GeneratedMethodAccessor98.invoke    at
 sun.reflect.DelegatingMethodAccessorImpl.invoke
 (DelegatingMethodAccessorImpl.java43)    at
 java.lang.reflect.Method.invoke (Method.java498)    at
 org.springframework.aop.support.AopUtils.invokeJoinpointUsingReflection
 (AopUtils.java317)    at
 org.springframework.aop.framework.ReflectiveMethodInvocation.invokeJoinpoint
 (ReflectiveMethodInvocation.java183)    at
 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed
 (ReflectiveMethodInvocation.java150)    at
 org.springframework.security.access.intercept.aopalliance.MethodSecurityInterceptor.invoke
 (MethodSecurityInterceptor.java64)    at
 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed
 (ReflectiveMethodInvocation.java172)    at
 org.springframework.transaction.interceptor.TransactionInterceptor$1.proceedWithInvocation
 (TransactionInterceptor.java96)    at
 org.springframework.transaction.interceptor.TransactionAspectSupport.invokeWithinTransaction
 (TransactionAspectSupport.java260)    at
 org.springframework.transaction.interceptor.TransactionInterceptor.invoke
 (TransactionInterceptor.java94)    at
 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed
 (ReflectiveMethodInvocation.java172)    at
 org.granite.tide.spring.TideDataPublishingInterceptor$1.call
 (TideDataPublishingInterceptor.java78)    at
 org.granite.tide.spring.TideDataPublishingWrapper.execute
 (TideDataPublishingWrapper.java127)    at
 org.granite.tide.spring.TideDataPublishingInterceptor.invoke
 (TideDataPublishingInterceptor.java75)    at
 org.springframework.aop.framework.ReflectiveMethodInvocation.proceed
 (ReflectiveMethodInvocation.java172)    at
 org.springframework.aop.framework.JdkDynamicAopProxy.invoke
 (JdkDynamicAopProxy.java204)    at
 com.sun.proxy.$Proxy61.applyChangeSet    at
 sun.reflect.GeneratedMethodAccessor736.invoke    at
 sun.reflect.DelegatingMethodAccessorImpl.invoke
 (DelegatingMethodAccessorImpl.java43)    at
 java.lang.reflect.Method.invoke (Method.java498)    at
 org.granite.messaging.service.ServiceInvocationContext.invoke
 (ServiceInvocationContext.java72)    at
 org.granite.messaging.service.security.AbstractSecurityService.endAuthorization
 (AbstractSecurityService.java108)    at
 org.granite.spring.security.SpringSecurity3Service.authorize
 (SpringSecurity3Service.java294)    at
 org.granite.messaging.service.ServiceInvoker.invoke
 (ServiceInvoker.java220)    at
 org.granite.messaging.amf.process.AMF3MessageProcessor.processRemotingMessage
 (AMF3MessageProcessor.java141)    at
 org.granite.messaging.amf.process.AMF3MessageProcessor.process
 (AMF3MessageProcessor.java60)    at
 org.granite.messaging.amf.process.AMF0MessageProcessor.process
 (AMF0MessageProcessor.java79)    at
 org.granite.messaging.webapp.AMFEndpoint.serviceAMF
 (AMFEndpoint.java91)    at
 org.granite.messaging.webapp.AMFEndpoint.service (AMFEndpoint.java66) 
 at org.granite.spring.ServerFilter.handle (ServerFilter.java331)    at
 org.springframework.web.servlet.DispatcherServlet.doDispatch
 (DispatcherServlet.java925)    at
 org.springframework.web.servlet.DispatcherServlet.doService
 (DispatcherServlet.java856)    at
 org.springframework.web.servlet.FrameworkServlet.processRequest
 (FrameworkServlet.java936)    at
 org.springframework.web.servlet.FrameworkServlet.doPost
 (FrameworkServlet.java838)    at
 javax.servlet.http.HttpServlet.service (HttpServlet.java648)    at
 org.springframework.web.servlet.FrameworkServlet.service
 (FrameworkServlet.java812)    at
 javax.servlet.http.HttpServlet.service (HttpServlet.java729)    at
 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
 (ApplicationFilterChain.java292)    at
 org.apache.catalina.core.ApplicationFilterChain.doFilter
 (ApplicationFilterChain.java207)    at
 org.apache.tomcat.websocket.server.WsFilter.doFilter (WsFilter.java52)
 at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
 (ApplicationFilterChain.java240)    at
 org.apache.catalina.core.ApplicationFilterChain.doFilter
 (ApplicationFilterChain.java207)    at
 com.adaptive.xxxxxx.servlet.CacheControlFilter.doFilter
 (CacheControlFilter.java13)    at
 org.apache.catalina.core.ApplicationFilterChain.internalDoFilter
 (ApplicationFilterChain.java240)    at
 org.apache.catalina.core.ApplicationFilterChain.doFilter
 (ApplicationFilterChain.java207)    at
 org.apache.catalina.core.StandardWrapperValve.invoke
 (StandardWrapperValve.java212)    at
 org.apache.catalina.core.StandardContextValve.invoke
 (StandardContextValve.java106)    at
 org.apache.catalina.authenticator.AuthenticatorBase.invoke
 (AuthenticatorBase.java502)    at
 org.apache.catalina.core.StandardHostValve.invoke
 (StandardHostValve.java141)    at
 org.apache.catalina.valves.ErrorReportValve.invoke
 (ErrorReportValve.java79)    at
 org.apache.catalina.valves.AbstractAccessLogValve.invoke
 (AbstractAccessLogValve.java616)    at
 org.apache.catalina.valves.rewrite.RewriteValve.invoke
 (RewriteValve.java480)    at
 org.apache.catalina.core.StandardEngineValve.invoke
 (StandardEngineValve.java88)    at
 org.apache.catalina.connector.CoyoteAdapter.service
 (CoyoteAdapter.java522)    at
 org.apache.coyote.http11.AbstractHttp11Processor.process
 (AbstractHttp11Processor.java1095)    at
 org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process
 (AbstractProtocol.java672)    at
 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.doRun
 (NioEndpoint.java1502)    at
 org.apache.tomcat.util.net.NioEndpoint$SocketProcessor.run
 (NioEndpoint.java1458)    at
 java.util.concurrent.ThreadPoolExecutor.runWorker
 (ThreadPoolExecutor.java1149)    at
 java.util.concurrent.ThreadPoolExecutor$Worker.run
 (ThreadPoolExecutor.java624)    at
 org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run
 (TaskThread.java61)    at java.lang.Thread.run (Thread.java748) Inner
 exception com.microsoft.sqlserver.jdbc.SQLServerException handled at
 org.hibernate.exception.internal.StandardSQLExceptionConverter.convert:
 at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError
 (SQLServerException.java191)    at
 com.microsoft.sqlserver.jdbc.SQLServerConnection.checkClosed
 (SQLServerConnection.java395)    at
 com.microsoft.sqlserver.jdbc.SQLServerConnection.prepareStatement
 (SQLServerConnection.java2292)    at
 com.microsoft.sqlserver.jdbc.SQLServerConnection.prepareStatement
 (SQLServerConnection.java1931)    at
 sun.reflect.GeneratedMethodAccessor731.invoke    at
 sun.reflect.DelegatingMethodAccessorImpl.invoke
 (DelegatingMethodAccessorImpl.java43)    at
 java.lang.reflect.Method.invoke (Method.java498)    at
 com.mchange.v2.c3p0.stmt.GooGooStatementCache$1StmtAcquireTask.run
 (GooGooStatementCache.java546)    at
 com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run
 (ThreadPoolAsynchronousRunner.java648)
 com.microsoft.sqlserver.jdbc.SQLServerException:    at
 com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError
 (SQLServerException.java191)    at
 com.microsoft.sqlserver.jdbc.SQLServerConnection.checkClosed
 (SQLServerConnection.java395)    at
 com.microsoft.sqlserver.jdbc.SQLServerConnection.prepareStatement
 (SQLServerConnection.java2292)    at
 com.microsoft.sqlserver.jdbc.SQLServerConnection.prepareStatement
 (SQLServerConnection.java1931)    at
 sun.reflect.GeneratedMethodAccessor731.invoke    at
 sun.reflect.DelegatingMethodAccessorImpl.invoke
 (DelegatingMethodAccessorImpl.java43)    at
 java.lang.reflect.Method.invoke (Method.java498)    at
 com.mchange.v2.c3p0.stmt.GooGooStatementCache$1StmtAcquireTask.run
 (GooGooStatementCache.java546)    at
 com.mchange.v2.async.ThreadPoolAsynchronousRunner$PoolThread.run
 (ThreadPoolAsynchronousRunner.java648)

我想知道它是否与c3p0连接池有关。

如果信息是从app-config文件中获取的,而不是hibernate.properties文件,我不是100%。

我也同时附加了两个文件,您可以在下面的内联中找到相关信息:

app-config.xml:

<!-- Data source --
    <bean id="dataSource" class="com.mchange.v2.c3p0.ComboPooledDataSource" destroy-method="close"

        <property name="driverClass" value="com.microsoft.sqlserver.jdbc.SQLServerDriver" /

        <property name="jdbcUrl" value="jdbc:sqlserver://xxxxxxxx.database.windows.net:1433;database=XXXXX;user=XXXXXXXX;password=XXXXXXXXX;encrypt=true;trustServerCertificate=false;hostNameInCertificate=*.database.windows.net;loginTimeout=30;" /

        <!-- Pool properties --
        <property name="minPoolSize" value="3" /
        <property name="maxPoolSize" value="120" /
        <property name="maxStatements" value="120" /
        <property name="preferredTestQuery" value="SELECT 1" /
        <property name="maxIdleTime" value="300" /
        <property name="testConnectionOnCheckin" value="true" /
        <property name="idleConnectionTestPeriod" value="30" /
    </bean>

hibernate.properties:

# JDBC Connection information
jdbc.driverClassName=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost/mkbkwebgds
jdbc.username=xxxxxxxx
jdbc.password=xxxxxxxxxxx
# Hibernate 3 configuration
hibernate.show_sql=true
hibernate.format_sql=true
hibernate.jdbc.batch_size=20
        hibernate.connection.provider_class=org.hibernate.connection.C3P0ConnectionProvider
hibernate.transaction.factory_class=org.hibernate.transaction.JDBCTransactionFactory
hibernate.dialect=org.hibernate.dialect.MySQLDialect
hibernate.hbm2ddl.auto=update
hibernate.c3p0.acquire_increment=3
hibernate.c3p0.idle_test_period=1000
hibernate.c3p0.timeout=2520
hibernate.c3p0.min_size=3
hibernate.c3p0.max_size=20
hibernate.c3p0.max_statements=0
hibernate.c3p0.preferredTestQuery=select 1;

自从发现这些错误以来,我没有在应用程序或服务器上进行任何更改。

任何帮助解决此问题的方法将不胜感激。

1 个答案:

答案 0 :(得分:1)

您的hibernate.properties文件正在设置MySql驱动程序,而您的app-config.xml正在设置SQL Server驱动程序。由于错误消息中提到了SQL Server,因此我在猜测您使用的是app-config.xml。 (您的hibernate.properties还设置了hibernate.hbm2ddl.auto=update,永远不要在生产中使用它。)

app-config.xml将testConnectionOnCheckin设置为true。这意味着将连接返回到池时将对其进行验证。它还将idleConnectionTestPeriod设置为30,这意味着每30秒验证一次空闲连接。这使问题不太可能(但并非并非不可能)是数据库在连接池中关闭了连接。

您可以尝试将testConnectionOnCheckIn替换为testConnectionOnCheckout。这可以解决数据库上肯定会关闭连接的所有问题。如果这不起作用,则问题在于程序正在主动关闭连接,然后尝试再次使用它。