日期:2014-05-17  浏览次数:20735 次

请教:java.sql.SQLException: 关闭的连接
各位大侠:我用hibernate和 oracle开发的基于apache james的邮件系统。系统部署在服务器(tomcat)上后一直运行正常。但昨天突然出现错误,用户无法登录系统。分析日志发现抛出大量java.sql.SQLException: 关闭的连接的异常。
[2012-08-27 05:40:49] com.csc.mail.jsh.db.hibernate.dao.generic.HibernateDao : [INFO ]  - [findByParameters]excute sql:from com.csc.mail.jsh.db.pojo.TblUser where fullName=? 
[2012-08-27 05:40:49] org.hibernate.util.JDBCExceptionReporter : [WARN ]  - SQL Error: 17008, SQLState: null
[2012-08-27 05:40:49] org.hibernate.util.JDBCExceptionReporter : [ERROR]  - 关闭的连接
[2012-08-27 05:40:49] com.csc.mail.jsh.db.hibernate.dao.generic.HibernateDao : [ERROR]  - [findByParameters] error when excute sql:[from com.csc.mail.jsh.db.pojo.TblUser where fullName=? ],could not execute query,cause:java.sql.SQLException: 关闭的连接
org.hibernate.exception.GenericJDBCException: could not execute query
at org.hibernate.exception.SQLStateConverter.handledNonSpecificException(SQLStateConverter.java:126)
at org.hibernate.exception.SQLStateConverter.convert(SQLStateConverter.java:114)
at org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:66)
at org.hibernate.loader.Loader.doList(Loader.java:2235)
at org.hibernate.loader.Loader.listIgnoreQueryCache(Loader.java:2129)
at org.hibernate.loader.Loader.list(Loader.java:2124)
at org.hibernate.loader.hql.QueryLoader.list(QueryLoader.java:401)
at org.hibernate.hql.ast.QueryTranslatorImpl.list(QueryTranslatorImpl.java:363)
at org.hibernate.engine.query.HQLQueryPlan.performList(HQLQueryPlan.java:196)
at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1149)
at org.hibernate.impl.QueryImpl.list(QueryImpl.java:102)
at com.csc.mail.jsh.db.hibernate.dao.generic.HibernateDao.findByParameters(HibernateDao.java:198)
at com.csc.mail.jsh.business.service.serv.impl.UserServImpl.getUserByName(UserServImpl.java:206)
at com.csc.mail.jsh.action.UserAction.login(UserAction.java:49)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeAction(DefaultActionInvocation.java:441)
at com.opensymphony.xwork2.DefaultActionInvocation.invokeActionOnly(DefaultActionInvocation.java:280)
at com.opensymphony.xwork2.DefaultActionInvocation.invoke(DefaultActionInvocation.java:243)
at com.opensymphony.xwork2.interceptor.DefaultWorkflowInterceptor.doIntercept

请问会是什么原因?我hibernate连接数据库的dao,每一次操作后面都有finally,并且在finally里面关闭连接(closeSession();)。
我的hibernate配置文件没有配置连接池。
请各位大侠不吝赐教!