/ / Comment reconnecter les connexions perdues avec EclipseLink? - java, mysql, jpa, jdbc, eclipselink

Comment reconnecter les connexions perdues avec EclipseLink? - java, mysql, jpa, jdbc, eclipselink

J'ai le problème si le serveur mySQL tue lesession après 500 secondes de "mise en veille", que la requête suivante n’aboutit pas. Le même problème se produit peut-être après 700 secondes si le serveur MySQL ne ferme pas la connexion en veille.

Que puis-je faire? Suivre les propriétés de mon 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" />

Et le type de transaction est RESOURCE_LOCAL s’il est important de le savoir.

Réponses:

4 pour la réponse № 1

Comment avez-vous configuré votre pool de connexion? S'il s'agit d'une source de données du serveur, les propriétés telles que le test de connexion doivent être définies sur le serveur. Voir http://docs.oracle.com/cd/E21764_01/web.1111/e13737/ds_tuning.htm#i1199711 par exemple les paramètres.

S'il s'agit d'un pool EclipseLink, il devraittente automatiquement de réessayer les requêtes lorsqu'il détecte un échec de connexion par défaut. Les propriétés qui contrôlent le comportement ne sont accessibles que par l'intermédiaire de api dans la classe DatabasePlaform pour votre base de données spécifique et peuvent être définies via un personnaliseur comme décrit ici: Comment modifier le comportement de nouvelle tentative de connexion à Eclipselink JPA 2.0