java - 获取 SQLServerException makeFromDriverError 消息 'could not prepare statement' 和 'The connection is closed'

标签 java sql sql-server hibernate c3p0

最近,随着我的生产应用程序的用户数量不断增加,我开始收到以下错误(数千个):

org.hibernate.exception.GenericJDBCException: could not prepare statement Problem Id:com.microsoft.sqlserver.jdbc.SQLServerException at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError

The connection is closed. Problem Id:com.microsoft.sqlserver.jdbc.SQLServerException at com.microsoft.sqlserver.jdbc.SQLServerException.makeFromDriverError

以下是完整的错误:

 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%。

我也附上了这两个文件,您可以在下面看到内嵌的相关信息:

应用程序配置.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 属性:

# 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;

自从开始发现这些错误以来,我没有更改应用程序或服务器中的任何内容。

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

最佳答案

您的 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。这肯定会解决数据库关闭连接的任何问题。如果这不起作用,那么问题是程序主动关闭连接,然后尝试再次使用它。

关于java - 获取 SQLServerException makeFromDriverError 消息 'could not prepare statement' 和 'The connection is closed',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/55881526/

相关文章:

java - 如何实现相互 TLS 身份验证的 JUnit 测试?

java - 已知声源的回声消除(java + linux)

php - 用于 SELECT 查询的多个 HTML 字段

sql-server - SQL Rank 未按预期工作

java - 在 Java 中对自定义数组列表进行排序

java - Openfire VOIP 客户端,如何使用媒体代理

c++ - 解析自定义结构化查询语言?

sql - 我需要在 T-SQL 数据透视查询中更改哪些内容才能实现此特定输出?

sql-server - Sqlpackage.exe 部署到 Azure : Can I specify performance tier?

sql - 需要帮助来优化可能出错的空间 SQL 查询