How To modify Eclipselink JPA 2.0 connection retry

2019-01-26 21:20发布

问题:

How To modify Eclipselink JPA 2.0 connection retry behavior . Eclipselink automatically tries to reconnect it self to database whenever it detects a connection failure this causes swing ui to freeze without any responses until it connects to database . Are there any solution to modify this behavior Ie is it possible to throw exception when connection fails without retrying Please help on this issue I am facing with huge problem.

I went throe eclipselink source code and google but I could not find any solution.

回答1:

Using a SessionCustomizer you can disable the connection reconnection.

package acme;
import  org.eclipse.persistence.internal.sessions.factories.SessionCustomizer;
import org.eclipse.persistence.sessions.Session;
import org.eclipse.persistence.sessions.DatabaseLogin;

public class EmployeeSessionCustomizer implements SessionCustomizer {

    public void customize(Sesssion session) {
        DatabaseLogin login = (DatabaseLogin)session.getDatasourceLogin();
        login.setConnectionHealthValidationOnError(false);
    }
}

This customizer can be set through a persistence unit property

 <property name="eclipselink.session.customizer" value="acme.EmployeeSessionCustomizer"/>