Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to reconnect lost connections with EclipseLink?

I have the problem if the mySQL Server kills the session after 500 sec "sleeping-time", that the next request isn't successful. The same problem occurs after maybe 700 sec if the mySQL Server doesn't closes the sleeping connection.

What can I do? Following the properties of my persistence.xml

<property name="eclipselink.query-results-cache" value="false" />
<property name="eclipselink.cache.size.default" value="0" />
<property name="eclipselink.cache.type.default" value="None" />
<property name="eclipselink.cache.alwaysRefresh.default" value="true" />
<property name="eclipselink.jdbc.read-connections.max" value="10" />
<property name="eclipselink.jdbc.cache-statements" value="true" />
<property name="eclipselink.jdbc.read-connections.shared" value="true" />

And the transactiontype is RESOURCE_LOCAL if it's important to know.

like image 863
Daniel Müssig Avatar asked May 07 '14 18:05

Daniel Müssig


1 Answers

How have you configured your connection pool? If it a server datasource, the properties such as connection testing should be set in the server. See http://docs.oracle.com/cd/E21764_01/web.1111/e13737/ds_tuning.htm#i1199711 for example settings.

If it is an EclipseLink pool, it should automatically attempt to retry queries when it detects a connection failure by default. The properties controlling the behavior are only accessible through api in the DatabasePlaform class for your specific database, and can be set through a customizer as described here: How To modify Eclipselink JPA 2.0 connection retry behavior

like image 171
Chris Avatar answered Oct 05 '22 12:10

Chris