On 22 May 2013, at 19:32, [email protected] wrote:

> 
> Hi,
> 
> I increased wait_timeout in my.conf, and it worked. At least for listing 
> widgets. Unfortunately, sometimes when my app queries widgets properties from 
> Apache Wookie, it responds with 404. Sometimes it answers with 200 and the 
> correct value for the requested property. I've double checked the url being 
> used when calling the REST API and it is the same. Do you think this problem 
> is related with the connector/J instability?


It will return 404 if the property is not set, so if the GET is being called 
immediately after POSTing or PUTting then the request may not have been 
completed.

> 
> Regards,
> 
> David
> 
> -----Original Message-----
> From: "Scott Wilson" <[email protected]>
> Sent: Tuesday, 14 May, 2013 10:21
> To: [email protected]
> Subject: Re: ISSUE 404
> 
> 
> 
> 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