Hi! Just a short comment. It's not unique in the sense that I also had at least one instance of the same problem a few weeks ago.
Mikael On 2013.4.1, at 21:13, Kevin Sutter wrote: > Hi David, > This sounds strange or, at least, unique. Normal, default processing by > OpenJPA is to only get a database connection when it's needed and then > release it as soon as possible (flush or commit). There are other options > [1] available to extend the life of the connection to either the > transaction or until the EM closes, but you would have to set that > explicitly. Are you using either of these? > > Or, is there some other processing in your application that is accidentally > holding onto the connection? Via OpenJPA APIs, there is a means of > obtaining the connection object, but again that's not normal processing. > Normally, apps would just like OpenJPA handle the connection management > processing. One of the benefits of JPA... > > Are you using OpenJPA in a JSE environment, or as part of an application > server? Just wondering if there's something else holding onto connections > outside of OpenJPA's control. Like some connection management or > connection pooling utility? By default, OpenJPA will use DBCP for > connection pooling in the JSE environment [2]. There have been some issues > relating to DBCP and stale connections in the pool, but I thought those > were cleared up in the past... You could try disabling the DBCP support > and see if that resolve it as a quick test. > > Bottom line is that I think OpenJPA is just the messenger in this case. > Some connection was given to OpenJPA that was stale and we just reported > the error. Hopefully, this note gives you a few areas to check on. Let us > know what you find out. > > Kevin > > [1] > http://openjpa.apache.org/builds/latest/docs/docbook/manual.html#ref_guide_dbsetup_retain > [2] > http://openjpa.apache.org/builds/latest/docs/docbook/manual.html#ref_guide_integration_dbcp > > On Fri, Jan 4, 2013 at 6:39 AM, David Beer <david.m.b...@googlemail.com>wrote: > >> Hi All >> >> I periodically get an issue where the connection to my MySQL Database >> timesout. I have set the value <property >> name="openjpa.**ConnectionFactoryProperties" >> value="autoReconnect=true"/> in the persistence.xml file and this works >> most of the time but if there is a long time between the connection like a >> few days it timesout. Is this a case of increasing the timeout value in >> MySQL or is this a setting in OpenJpa I need to change? >> >> My stack trace is as follows: >> >> 02-Jan-2013 01:44:27 com.copperarrow.utils.**autotrial.SNSRecieverServlet >> messageProcessed >> SEVERE: Problem executin query find by id >> <openjpa-2.2.0-r422266:1244990 fatal general error> org.apache.openjpa.** >> persistence.**PersistenceException: The last packet successfully received >> from the server was 187,404,662 milliseconds ago. The last packet sent >> successfully to the server was 187,404,662 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 org.apache.openjpa.jdbc.sql.**DBDictionary.narrow(** >> DBDictionary.java:4918) >> at org.apache.openjpa.jdbc.sql.**DBDictionary.**newStoreException( >> **DBDictionary.java:4878) >> >> My MySQL Settings are as follows for default timeout. >> >> mysql> SHOW GLOBAL VARIABLES LIKE "wait_timeout"; >> +---------------+-------+ >> | Variable_name | Value | >> +---------------+-------+ >> | wait_timeout | 28800 | >> +---------------+-------+ >> 1 row in set (0.00 sec) >> >> Thanks >> >> David >> >> >>