|
@@ -20,6 +20,8 @@ package org.apache.ambari.server.orm;
|
|
|
import javax.activation.DataSource;
|
|
|
|
|
|
import org.eclipse.persistence.config.SessionCustomizer;
|
|
|
+import org.eclipse.persistence.platform.database.MySQLPlatform;
|
|
|
+import org.eclipse.persistence.sessions.DatabaseLogin;
|
|
|
import org.eclipse.persistence.sessions.JNDIConnector;
|
|
|
import org.eclipse.persistence.sessions.Session;
|
|
|
|
|
@@ -49,10 +51,14 @@ public class EclipseLinkSessionCustomizer implements SessionCustomizer {
|
|
|
/**
|
|
|
* {@inheritDoc}
|
|
|
* <p/>
|
|
|
- * Currently a NOOP, this class exists for quick customization purposes.
|
|
|
+ * This class exists for quick customization purposes.
|
|
|
*/
|
|
|
@Override
|
|
|
public void customize(Session session) throws Exception {
|
|
|
- // NOOP
|
|
|
+ //Override transaction isolation level for MySQL to match EclipseLink shared cache behavior
|
|
|
+ DatabaseLogin databaseLogin = (DatabaseLogin) session.getDatasourceLogin();
|
|
|
+ if (databaseLogin.getDatasourcePlatform() instanceof MySQLPlatform) {
|
|
|
+ databaseLogin.setTransactionIsolation(DatabaseLogin.TRANSACTION_READ_COMMITTED);
|
|
|
+ }
|
|
|
}
|
|
|
}
|