On 14 May 2013, at 13:59, [email protected] wrote:

> 
> Hello,
> 
> I've just updated my Apache Wookie to the latest SVN version (05/13/2013) and 
> it crashes after a long idle period. I think it is the same problem described 
> in Issue 404. The exception that appears in the log is:

Yes, that does indeed look like the dreaded "MySQL Stale Connection" problem.

Starting with 0.14 we added a validation query ("SELECT 1") to the DBCP which 
usually fixes things. However, I did see this:

http://stackoverflow.com/questions/9069378/stale-connections-validationquery-does-not-fix

... which indicates that there may be a problem related to newer versions of 
Connector/J. However the suggested fix there is to set wait_timeout in my.conf 
to a larger value.

> 
> 
> 
> Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last 
> packet successfully received from the server was 54,330,467 milliseconds ago. 
>  The last packet sent successfully to the server was 54,330,469 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.
> at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
> at 
> sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
> at 
> sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
> at java.lang.reflect.Constructor.newInstance(Constructor.java:525)
> at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
> at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
> at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3352)
> 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)
> at 
> org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:280)
> at 
> org.apache.openjpa.lib.jdbc.LoggingConnectionDecorator$LoggingConnection$LoggingPreparedStatement.executeQuery(LoggingConnectionDecorator.java:1061)
> at 
> org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement..executeQuery(DelegatingPreparedStatement.java:278)
> at 
> org.apache.openjpa.jdbc.kernel.JDBCStoreManager$CancelPreparedStatement.executeQuery(JDBCStoreManager.java:1731)
> at 
> org.apache.openjpa.lib.jdbc.DelegatingPreparedStatement.executeQuery(DelegatingPreparedStatement.java:268)
> at org.apache..openjpa.jdbc.sql.SelectImpl.executeQuery(SelectImpl.java:471)
> at org.apache.openjpa.jdbc.sql.SelectImpl.execute(SelectImpl.java:396)
> ... 40 more
> Caused by: java.net.SocketException: Broken pipe
> at java.net.SocketOutputStream.socketWrite0(Native Method)
> at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:109)
> at java.net.SocketOutputStream.write(SocketOutputStream.java:153)
> at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82)
> at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140)
> at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3333)
> ... 52 more
> 
> I've tried adding "autoReconnect=true" to the connection string but the 
> problem persists. Wookie is running on a Apache Tomcat 7 installed on a 
> Ubuntu Server 12.10. Java version is OpenJDK x64 "1.7.0_09" and the database 
> is a MySQL version "5.5.29-0ubuntu0.12.10.1".
> 
> Any clues?
> 
> Regards,
> 
> David
> 
> 

Attachment: PGP.sig
Description: This is a digitally signed message part

Reply via email to