> Hi,
>  
> I am working on a web application which uses Tomcat-5.0.27 as Application 
> server and MySql 4.1 as DB server. 
> The application uses Struts 1.1 and Hibernate 3.0 frameworks.
> 
> I am facing a problem with the application. If the servers are kept running 
> idle for a long time(7-8 hours or overnight) and then someone tries to login, 
> the application does not allow the user to login and throws exceptions.
> When I restart the MySql server, the problem still remains but if I restart 
> the Tomcat server, it works fine. 
> 
> Could someone tell me what is the problem with the servers and how it could 
> be rectified? 
> 
> Here is the full stack trace of errors I get : 
> 
> STACKTRACE: 
> 
> java.net.SocketException: Software caused connection abort: recv failed 
> at java.net.SocketInputStream.socketRead0(Native Method) 
> at java.net.SocketInputStream.read(SocketInputStream.java:129) 
> at java.io.BufferedInputStream.fill(BufferedInputStream.java:183) 
> at java.io.BufferedInputStream.read1(BufferedInputStream.java:222) 
> at java.io.BufferedInputStream.read(BufferedInputStream.java:277) 
> at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1316) 
> at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1463) 
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1854) 
> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1109) 
> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1203) 
> at com.mysql.jdbc.Connection.execSQL(Connection.java:2090) 
> at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1496) 
> at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:118) 
> at org.hibernate.loader.Loader.getResultSet(Loader.java:1233) 
> at org.hibernate.loader.Loader.doQuery(Loader.java:370) 
> at 
> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:210)
>  
> at org.hibernate.loader.Loader.doList(Loader.java:1557) 
> at org.hibernate.loader.Loader.list(Loader.java:1540) 
> at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:113) 
> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1254) 
> at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:299) 
> at dao.UserDAO_H.getUserByUserName(UserDAO_H.java:68) 
> at bo.UserBO.validateUser(UserBO.java:46) 
> at actions.LogonAction.execute(LogonAction.java:70) 
> at 
> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
>  
> at 
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) 
> at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) 
> at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) 
> 
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) 
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 
> at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
>  
> at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
>  
> at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
>  
> at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>  
> at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
> at 
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
>  
> at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
>  
> at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>  
> at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
> at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) 
> at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>  
> at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 
> > 
> at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
>  
> at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
> at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>  
> at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>  
> at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) 
> 
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) 
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) 
> at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
>  
> at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) 
> at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
>  
> at java.lang.Thread.run(Thread.java:534) 
> 
> 
> ** END NESTED EXCEPTION ** 
> 
> 
> 
> org.hibernate.exception.GenericJDBCException: could not execute query 
> at 
> org.hibernate.exception.ErrorCodeConverter.handledNonSpecificException(ErrorCodeConverter.java:92)
>  
> at 
> org.hibernate.exception.ErrorCodeConverter.convert(ErrorCodeConverter.java:80)
>  
> at 
> org.hibernate.exception.JDBCExceptionHelper.convert(JDBCExceptionHelper.java:43)
>  
> at org.hibernate.loader.Loader.doList(Loader.java:1560) 
> at org.hibernate.loader.Loader.list(Loader.java:1540) 
> at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:113) 
> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1254) 
> at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:299) 
> at dao.UserDAO_H.getUserByUserName(UserDAO_H.java:68) 
> at bo.UserBO.validateUser(UserBO.java:46) 
> at actions.LogonAction.execute(LogonAction.java:70) 
> at 
> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
>  
> at 
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) 
> at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) 
> at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) 
> 
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) 
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 
> at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
>  
> at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
>  
> at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
>  
> at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>  
> at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
> at 
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
>  
> at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
>  
> at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>  
> at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
> at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) 
> at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>  
> at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 
> at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
>  
> at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
> at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>  
> at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>  
> at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) > 
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) 
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) 
> at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
>  
> at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) 
> at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
>  
> at java.lang.Thread.run(Thread.java:534) 
> Caused by: java.sql.SQLException: Communication link failure: 
> java.net.SocketException, underlying cause: Software caused connection abort: 
> recv failed 
> 
> ** BEGIN NESTED EXCEPTION ** 
> 
> java.net.SocketException 
> MESSAGE: Software caused connection abort: recv failed 
> 
> STACKTRACE: 
> 
> java.net.SocketException: Software caused connection abort: recv failed 
> at java.net.SocketInputStream.socketRead0(Native Method) 
> at java.net.SocketInputStream.read(SocketInputStream.java:129) 
> at java.io.BufferedInputStream.fill(BufferedInputStream.java:183) 
> at java.io.BufferedInputStream.read1(BufferedInputStream.java:222) 
> at java.io.BufferedInputStream.read(BufferedInputStream.java:277) 
> at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1316) 
> at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1463) 
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1854) 
> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1109) 
> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1203) 
> at com.mysql.jdbc.Connection.execSQL(Connection.java:2090) 
> at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1496) 
> at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:118) 
> at org.hibernate.loader.Loader.getResultSet(Loader.java:1233) 
> at org.hibernate.loader.Loader.doQuery(Loader.java:370) 
> at 
> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:210)
>  
> at org.hibernate.loader.Loader.doList(Loader.java:1557) 
> at org.hibernate.loader.Loader.list(Loader.java:1540) 
> at org.hibernate.loader.criteria.CriteriaLoader.list(CriteriaLoader.java:113) 
> at org.hibernate.impl.SessionImpl.list(SessionImpl.java:1254) 
> at org.hibernate.impl.CriteriaImpl.list(CriteriaImpl.java:299) 
> at dao.UserDAO_H.getUserByUserName(UserDAO_H.java:68) 
> at bo.UserBO.validateUser(UserBO.java:46) 
> at actions.LogonAction.execute(LogonAction.java:70) 
> at 
> org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:484)
>  
> at 
> org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:274) 
> at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1482) 
> at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:525) 
> 
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:709) 
> at javax.servlet.http.HttpServlet.service(HttpServlet.java:802) 
> at 
> org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:237)
>  
> at 
> org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:157)
>  
> at 
> org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:214)
>  
> at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>  
> at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
> at 
> org.apache.catalina.core.StandardContextValve.invokeInternal(StandardContextValve.java:198)
>  
> at 
> org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:152)
>  
> at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>  
> at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
> at 
> org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:137) 
> at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>  > 
> at 
> org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:117) 
> at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:102)
>  
> at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
> at 
> org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
>  
> at 
> org.apache.catalina.core.StandardValveContext.invokeNext(StandardValveContext.java:104)
>  
> at 
> org.apache.catalina.core.StandardPipeline.invoke(StandardPipeline.java:520) 
> at org.apache.catalina.core.ContainerBase.invoke(ContainerBase.java:929) 
> 
> at org.apache.coyote.tomcat5.CoyoteAdapter.service(CoyoteAdapter.java:160) 
> at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:799) 
> at 
> org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.processConnection(Http11Protocol.java:705)
>  
> at org.apache.tomcat.util.net.TcpWorkerThread.runIt(PoolTcpEndpoint.java:577) 
> at 
> org.apache.tomcat.util.threads.ThreadPool$ControlRunnable.run(ThreadPool.java:683)
>  
> at java.lang.Thread.run(Thread.java:534) 
> 
> 
> ** END NESTED EXCEPTION ** 
> 
> 
> at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:1638) 
> at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:1854) 
> at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1109) 
> at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:1203) 
> at com.mysql.jdbc.Connection.execSQL(Connection.java:2090) 
> at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:1496) 
> at org.hibernate.jdbc.AbstractBatcher.getResultSet(AbstractBatcher.java:118) 
> at org.hibernate.loader.Loader.getResultSet(Loader.java:1233) 
> at org.hibernate.loader.Loader.doQuery(Loader.java:370) 
> at 
> org.hibernate.loader.Loader.doQueryAndInitializeNonLazyCollections(Loader.java:210)
>  
> at org.hibernate.loader.Loader.doList(Loader.java:1557) 
> ... 37 more 
> [DEBUG] 46:38 (HibernateUtil.java:closeSession:145) 
> Closing Session of this thread. 
> 
> [DEBUG] 46:38 (SessionImpl.java:close:254) 
> closing session 
> 
> [DEBUG] 46:38 (AbstractBatcher.java:closeConnection:437) 
> closing JDBC connection (open PreparedStatements: 0, globally: 0) (open 
> ResultSets: 0, globally: 0) 
> 
> [DEBUG] 46:38 (DriverManagerConnectionProvider.java:closeConnection:129) 
> returning connection to pool, pool size: 1 
> 
> [DEBUG] 46:38 (LogonAction.java:execute:115) 
> ---->Login Fail 
> 
> 
> 
> Could you please help me solve this problem?
> 
> Regards, 
> Rajiv
> 

Reply via email to