Caused by: java.sql.SQLException: 关闭的连接如何解决
服务刚开启能查到信息,过一段时间,就出这个问题,查不到信息,这是什么原因,用的hibernate执行的查询信息Causedby:java.sql.SQLException...
服务刚开启能查到信息,过一段时间,就出这个问题,查不到信息,这是什么原因,用的hibernate执行的查询信息
Caused by: java.sql.SQLException: 关闭的连接
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
at oracle.jdbc.driver.OracleConnection.privatePrepareStatement(OracleCon
nection.java:962)
at oracle.jdbc.driver.OracleConnection.prepareStatement(OracleConnection
.java:869)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatch
er.java:442)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatch
er.java:368)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatc
her.java:105)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1561)
at org.hibernate.loader.Loader.doQuery(Loader.java:661)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Lo
ader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2145)
... 29 more 展开
Caused by: java.sql.SQLException: 关闭的连接
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:134)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:179)
at oracle.jdbc.dbaccess.DBError.throwSqlException(DBError.java:269)
at oracle.jdbc.driver.OracleConnection.privatePrepareStatement(OracleCon
nection.java:962)
at oracle.jdbc.driver.OracleConnection.prepareStatement(OracleConnection
.java:869)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatch
er.java:442)
at org.hibernate.jdbc.AbstractBatcher.getPreparedStatement(AbstractBatch
er.java:368)
at org.hibernate.jdbc.AbstractBatcher.prepareQueryStatement(AbstractBatc
her.java:105)
at org.hibernate.loader.Loader.prepareQueryStatement(Loader.java:1561)
at org.hibernate.loader.Loader.doQuery(Loader.java:661)
at org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Lo
ader.java:224)
at org.hibernate.loader.Loader.doList(Loader.java:2145)
... 29 more 展开
4个回答
展开全部
一般来将,Connection在DB端有最大空闲时间的限制。
如:mysql默认Connection在8个小时无人使用(即有线程用Connection发送了SQL),就会自动断开。而此时,你本地配置的数据库连接池,却还不知道该连接已经被数据库断开了。这样就产生了,虽然拿出了Connection却在使用时,抛出已经关闭的异常。
解决办法是为连接池加检验Connection有效性的配置。这个我就不好给出具体的配置了,因为得看你用的是什么数据库连接池实现。
如:mysql默认Connection在8个小时无人使用(即有线程用Connection发送了SQL),就会自动断开。而此时,你本地配置的数据库连接池,却还不知道该连接已经被数据库断开了。这样就产生了,虽然拿出了Connection却在使用时,抛出已经关闭的异常。
解决办法是为连接池加检验Connection有效性的配置。这个我就不好给出具体的配置了,因为得看你用的是什么数据库连接池实现。
本回答被提问者和网友采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
可能情况是数据库关闭,或者连接池关闭了。可以查找原因
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
确定你的 oracle数据库打开.
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
配置没有问题,连接是否正确打开,还有你取对象时是否是延迟加载,有没有用到load方法?以上问题你检查一下就会得出答案
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询