java SQL 错误:0,SQLState:空

声明:本页面是StackOverFlow热门问题的中英对照翻译,遵循CC BY-SA 4.0协议,如果您需要使用它,必须同样遵循CC BY-SA许可,注明原文地址和作者信息,同时你必须将它归于原作者(不是我):StackOverFlow 原文地址: http://stackoverflow.com/questions/37384010/
Warning: these are provided under cc-by-sa 4.0 license. You are free to use/share it, But you must attribute it to the original authors (not me): StackOverFlow

提示:将鼠标放在中文语句上可以显示对应的英文。显示中英文
时间:2020-11-03 02:26:46  来源:igfitidea点击:

SQL Error: 0, SQLState: null

javamysqlspringhibernate

提问by Vishesh

I am getting the following exception. Can anyone help when this error occurs? This error occur randomly. sometime it occurs in one table and sometime in another. I am not able to identify the exact cause.

我收到以下异常。发生此错误时,任何人都可以提供帮助吗?这个错误是随机发生的。有时它出现在一张表中,有时出现在另一张表中。我无法确定确切原因。

  11:13:24,223 WARN    localhost-startStop-1 [JDBCExceptionReporter] - SQL Error: 0, SQLState: null
    11:13:24,224 ERROR   localhost-startStop-1 [JDBCExceptionReporter] - Connection has already been closed.
    11:13:24,356 ERROR   localhost-startStop-1 [OMSStartupServiceImpl] - Error occured while initializing state agent ...
    org.springframework.orm.hibernate3.HibernateJdbcException: JDBC exception on Hibernate data access: SQLException for SQL [select this_.id as id41_0_, this_.code as code41_0_, this_.description as descript3_41_0_, this_.label as label41_0_, this_.value as value41_0_ from order_status this_]; SQL state [null]; error code [0]; could not execute query; nested exception is org.hibernate.exception.GenericJDBCException: could not execute query
            at org.springframework.orm.hibernate3.SessionFactoryUtils.convertHibernateAccessException(SessionFactoryUtils.java:651)
            at org.springframework.orm.hibernate3.HibernateExceptionTranslator.convertHibernateAccessException(HibernateExceptionTranslator.java:89)
            at org.springframework.orm.hibernate3.HibernateExceptionTranslator.translateExceptionIfPossible(HibernateExceptionTranslator.java:68)
            at org.springframework.dao.support.ChainedPersistenceExceptionTranslator.translateExceptionIfPossible(ChainedPersistenceExceptionTranslator.java:58)
            at org.springframework.dao.support.DataAccessUtils.translateIfNecessary(DataAccessUtils.java:213)
            at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:163)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
            at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:155)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
            at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
            at com.snapdeal.oms.aspect.LogAspectHandler.profile(LogAspectHandler.java:120)
            at sun.reflect.GeneratedMethodAccessor139.invoke(Unknown Source)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:606)
            at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
            at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
            at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
            at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
            at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
            at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)
            at com.snapdeal.oms.dao.order.impl.OrderDaoImpl$$EnhancerByCGLIB$0008c6.getOrderStatus(<generated>)
            at com.snapdeal.oms.services.order.impl.OMSStartupServiceImpl.loadStateAgent(OMSStartupServiceImpl.java:1141)
            at com.snapdeal.oms.services.order.impl.OMSStartupServiceImpl.loadAll(OMSStartupServiceImpl.java:312)
            at com.snapdeal.oms.services.order.impl.OMSStartupServiceImpl.loadCache(OMSStartupServiceImpl.java:831)
            at com.snapdeal.oms.services.order.impl.OMSStartupServiceImpl.loadAllAtStartup(OMSStartupServiceImpl.java:729)
            at com.snapdeal.oms.services.order.impl.OMSStartupServiceImpl$$FastClassByCGLIB$$e485a1ab.invoke(<generated>)
            at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
            at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
            at org.springframework.aop.aspectj.MethodInvocationProceedingJoinPoint.proceed(MethodInvocationProceedingJoinPoint.java:80)
            at com.snapdeal.oms.aspect.LogAspectHandler.profile(LogAspectHandler.java:120)
            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.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethodWithGivenArgs(AbstractAspectJAdvice.java:621)
            at org.springframework.aop.aspectj.AbstractAspectJAdvice.invokeAdviceMethod(AbstractAspectJAdvice.java:610)
            at org.springframework.aop.aspectj.AspectJAroundAdvice.invoke(AspectJAroundAdvice.java:65)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
            at org.springframework.transaction.interceptor.TransactionInterceptor.invoke(TransactionInterceptor.java:110)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
            at org.springframework.aop.interceptor.ExposeInvocationInterceptor.invoke(ExposeInvocationInterceptor.java:90)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:172)
            at org.springframework.aop.framework.Cglib2AopProxy$DynamicAdvisedInterceptor.intercept(Cglib2AopProxy.java:622)
            at com.snapdeal.oms.services.order.impl.OMSStartupServiceImpl$$EnhancerByCGLIB$6301b3.loadAllAtStartup(<generated>)
            at com.snapdeal.web.listener.OMSContextListener.contextInitialized(OMSContextListener.java:34)
            at org.apache.catalina.core.StandardContext.listenerStart(StandardContext.java:5016)
            at org.apache.catalina.core.StandardContext.startInternal(StandardContext.java:5524)
            at org.apache.catalina.util.LifecycleBase.start(LifecycleBase.java:150)
            at org.apache.catalina.core.ContainerBase.addChildInternal(ContainerBase.java:901)
            at org.apache.catalina.core.ContainerBase.addChild(ContainerBase.java:877)
            at org.apache.catalina.core.StandardHost.addChild(StandardHost.java:649)
            at org.apache.catalina.startup.HostConfig.deployWAR(HostConfig.java:1081)
            at org.apache.catalina.startup.HostConfig$DeployWar.run(HostConfig.java:1877)
            at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:471)
            at java.util.concurrent.FutureTask.run(FutureTask.java:262)
            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:745)
    Caused by: org.hibernate.exception.GenericJDBCException: could not execute query
            at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:103)
            at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:91)
            at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
            at org.hibernate.loader.Loader.doList(Loader.java:2216)
            at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2104)
            at org.hibernate.loader.Loader.list(Loader.java:2099)
            at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:94)
            at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1569)
            at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:283)
            at com.snapdeal.oms.dao.order.impl.OrderDaoImpl.getOrderStatus(OrderDaoImpl.java:1715)
            at com.snapdeal.oms.dao.order.impl.OrderDaoImpl$$FastClassByCGLIB$8010d2.invoke(<generated>)
            at net.sf.cglib.proxy.MethodProxy.invoke(MethodProxy.java:149)
            at org.springframework.aop.framework.Cglib2AopProxy$CglibMethodInvocation.invokeJoinpoint(Cglib2AopProxy.java:689)
            at org.springframework.aop.framework.ReflectiveMethodInvocation.proceed(ReflectiveMethodInvocation.java:150)
            at org.springframework.dao.support.PersistenceExceptionTranslationInterceptor.invoke(PersistenceExceptionTranslationInterceptor.java:155)
            ... 56 more
    Caused by: java.sql.SQLException: Connection has already been closed.
            at org.apache.tomcat.jdbc.pool.ProxyConnection.invoke(ProxyConnection.java:117)
            at org.apache.tomcat.jdbc.pool.JdbcInterceptor.invoke(JdbcInterceptor.java:109)
            at org.apache.tomcat.jdbc.pool.DisposableConnectionFacade.invoke(DisposableConnectionFacade.java:80)
            at com.sun.proxy.$Proxy35.prepareStatement(Unknown Source)
            at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:505)
            at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatcher.java:423)
            at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatcher.java:139)
            at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1547)
            at org.hibernate.loader.Loader.doQuery(Loader.java:673)
            at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:236)
            at org.hibernate.loader.Loader.doList(Loader.java:2213)
            ... 67 more

回答by Louis

Looks like your connection is closed :

看起来您的连接已关闭:

Caused by: java.sql.SQLException: Connection has already been closed.

There must be a place in the code where the connection is closed.

代码中必须有关闭连接的地方。

回答by Bhupendra Bhoi

It's not possible to help you without having a look at your context.xml. Looks like you need to tune connection properties in your context.xml.

如果不查看您的 context.xml,就无法帮助您。看起来您需要在 context.xml 中调整连接属性。

The following parameters needs to be fine tuned.

以下参数需要微调。

    maxActive=<>
    maxIdle=<> 
    maxWait=<> 
    removeAbandoned=<>
    removeAbandonedTimeout=<>
    validationQueryTimeout=<>
    minEvictableIdleTimeMillis=<> 
    minIdle=<>
    initialSize=<>
    timeBetweenEvictionRunsMillis=<>
    validationInterval=<>

Please follow https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.htmlfor detailed documentation.

请关注https://tomcat.apache.org/tomcat-7.0-doc/jdbc-pool.html获取详细文档。