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
>> 
>> 
>> 

Reply via email to