I am getting the error posted below in the production logs. Googling it looks like, unfortunately for the popularity of my web site , that when there is no db access for more than some hours the connection times outs.
The solutions offered include changing the persistence.xml settings http://codingclues.eu/2009/commysqljdbcexceptionsjdbc4communicationsexception/.
Is there a reason why this is not default in MyEclipse? Is this the best solution? Any issues?
Thanks
2011-11-14 03:23:36,856 WARN [TP-Processor14] JDBCExceptionReporter – SQL Error: 0, SQLState: 08S01
2011-11-14 03:23:36,859 ERROR [TP-Processor14] JDBCExceptionReporter – The last packet successfully received from the server was 35,100,579 milliseconds ago. The last packet sent successfully to the server was 35,100,579 milliseconds ago. is longer than the server configured value of ‘wait_timeout’. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property ‘autoReconnect=true’ to avoid this problem.
2011-11-14 03:23:36,863 WARN [TP-Processor14] JDBCExceptionReporter – SQL Error: 0, SQLState: null
2011-11-14 03:23:36,864 ERROR [TP-Processor14] JDBCExceptionReporter – Already closed.
Nov 14, 2011 3:23:36 AM org.apache.catalina.core.StandardWrapperValve invoke
SEVERE: Servlet.service() for servlet WebFlow Servlet threw exception
java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:123)
at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3333)
at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1971)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2151)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2625)
at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2119)
at com.mysql.jdbc.PreparedStatement.executeQuery(PreparedStatement.java:2281)
……..