关于ssh运行一段时间出现错误---rpc不被拦截

最近做的ssh项目,运行一段时间总是出现2013-08-01 16:12:43 [org.hibernate.engine.jdbc.spi.SqlExceptionHelper]-[WARN] SQL Error: 0, SQLState: 08S01
2013-08-01 16:12:43 [org.hibernate.engine.jdbc.spi.SqlExceptionHelper]-[ERROR] Connection reset
2013-08-01 16:12:43 [org.hibernate.event.internal.DefaultLoadEventListener]-[INFO] HHH000327: Error performing load command : org.hibernate.exception.JDBCConnectionException: Connection reset
2013-08-01 16:12:43 [org.hibernate.engine.jdbc.spi.SqlExceptionHelper]-[WARN] SQL Error: 0, SQLState: null
2013-08-01 16:12:43 [org.hibernate.engine.jdbc.spi.SqlExceptionHelper]-[ERROR] 该连接已关闭。
这个错误。目前已经找到原因,现将我的答案共享。

这个错误,之前我在网上查很多说是连接池问题,我换了连接池c3p0 Proxool druid dpcp都用了,但是都不行,把数据库操作的代码重新改写了,都不行,都急疯了,最后发现是session的问题,是因为我的项目里面用了rpc过程调用,但是无论是struts的session过时拦截器还是srping-security的session过时管理,对这个都不管用,所以导致当session失效时,页面仍然可以操作数据库,所以出现以上错误。最后的解决方案是在每次rpc方法调用时都用session中有无login信息来判断session是否过期。我觉得struts-dojo项目可以在这上面做一个改进,是的rpc也受session过时拦截。

你可能感兴趣的:(ssh框架使用,ssh,数据库,连接出错,session过时拦截,rpc)