com.mysql.jdbc.ReplicationConnection Maven / Gradle / Ivy
/*
Copyright (c) 2004, 2014, Oracle and/or its affiliates. All rights reserved.
The MySQL Connector/J is licensed under the terms of the GPLv2
, like most MySQL Connectors.
There are special exceptions to the terms and conditions of the GPLv2 as it is applied to
this software, see the FLOSS License Exception
.
This program is free software; you can redistribute it and/or modify it under the terms
of the GNU General Public License as published by the Free Software Foundation; version 2
of the License.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY;
without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.
See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this
program; if not, write to the Free Software Foundation, Inc., 51 Franklin St, Fifth
Floor, Boston, MA 02110-1301 USA
*/
package com.mysql.jdbc;
import java.sql.CallableStatement;
import java.sql.DatabaseMetaData;
import java.sql.PreparedStatement;
import java.sql.SQLException;
import java.sql.SQLWarning;
import java.sql.Savepoint;
import java.sql.Statement;
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
import java.util.Properties;
import java.util.TimeZone;
import java.util.concurrent.Executor;
import com.mysql.jdbc.log.Log;
/**
* Connection that opens two connections, one two a replication master, and another to one or more slaves, and decides to use master when the connection is not
* read-only, and use slave(s) when the connection is read-only.
*/
public class ReplicationConnection implements Connection, PingTarget {
protected Connection currentConnection;
protected LoadBalancedConnection masterConnection;
protected LoadBalancedConnection slavesConnection;
private Properties slaveProperties;
private Properties masterProperties;
private NonRegisteringDriver driver;
private long connectionGroupID = -1;
private ReplicationConnectionGroup connectionGroup;
private List slaveHosts;
private List masterHosts;
private boolean allowMasterDownConnections = false;
private boolean enableJMX = false;
private boolean readOnly = false;
protected ReplicationConnection() {
}
public ReplicationConnection(Properties masterProperties, Properties slaveProperties, List masterHostList, List slaveHostList)
throws SQLException {
String enableJMXAsString = masterProperties.getProperty("replicationEnableJMX", "false");
try {
this.enableJMX = Boolean.parseBoolean(enableJMXAsString);
} catch (Exception e) {
throw SQLError.createSQLException(Messages.getString("ReplicationConnection.badValueForReplicationEnableJMX", new Object[] { enableJMXAsString }),
SQLError.SQL_STATE_ILLEGAL_ARGUMENT, null);
}
String allowMasterDownConnectionsAsString = masterProperties.getProperty("allowMasterDownConnections", "false");
try {
this.allowMasterDownConnections = Boolean.parseBoolean(allowMasterDownConnectionsAsString);
} catch (Exception e) {
throw SQLError.createSQLException(
Messages.getString("ReplicationConnection.badValueForAllowMasterDownConnections", new Object[] { enableJMXAsString }),
SQLError.SQL_STATE_ILLEGAL_ARGUMENT, null);
}
String group = masterProperties.getProperty("replicationConnectionGroup", null);
if (group != null) {
this.connectionGroup = ReplicationConnectionGroupManager.getConnectionGroupInstance(group);
if (this.enableJMX) {
ReplicationConnectionGroupManager.registerJmx();
}
this.connectionGroupID = this.connectionGroup.registerReplicationConnection(this, masterHostList, slaveHostList);
this.slaveHosts = new ArrayList(this.connectionGroup.getSlaveHosts());
this.masterHosts = new ArrayList(this.connectionGroup.getMasterHosts());
} else {
this.slaveHosts = new ArrayList(slaveHostList);
this.masterHosts = new ArrayList(masterHostList);
}
this.driver = new NonRegisteringDriver();
this.slaveProperties = slaveProperties;
this.masterProperties = masterProperties;
boolean createdMaster = this.initializeMasterConnection();
this.initializeSlaveConnection();
if (!createdMaster) {
this.readOnly = true;
this.currentConnection = this.slavesConnection;
return;
}
this.currentConnection = this.masterConnection;
}
private boolean initializeMasterConnection() throws SQLException {
return this.initializeMasterConnection(this.allowMasterDownConnections);
}
public long getConnectionGroupId() {
return this.connectionGroupID;
}
private boolean initializeMasterConnection(boolean allowMasterDown) throws SQLException {
// get this value before we change the masterConnection reference:
boolean isMaster = this.isMasterConnection();
StringBuffer masterUrl = new StringBuffer(NonRegisteringDriver.LOADBALANCE_URL_PREFIX);
boolean firstHost = true;
for (String host : this.masterHosts) {
if (!firstHost) {
masterUrl.append(',');
}
masterUrl.append(host);
firstHost = false;
}
String masterDb = this.masterProperties.getProperty(NonRegisteringDriver.DBNAME_PROPERTY_KEY);
masterUrl.append("/");
if (masterDb != null) {
masterUrl.append(masterDb);
}
LoadBalancedConnection newMasterConn = null;
try {
newMasterConn = (com.mysql.jdbc.LoadBalancedConnection) this.driver.connect(masterUrl.toString(), this.masterProperties);
} catch (SQLException ex) {
if (allowMasterDown) {
this.currentConnection = this.slavesConnection;
this.masterConnection = null;
this.readOnly = true;
return false;
}
throw ex;
}
if (isMaster && this.currentConnection != null) {
this.swapConnections(newMasterConn, this.currentConnection);
}
if (this.masterConnection != null) {
try {
this.masterConnection.close();
this.masterConnection = null;
} catch (SQLException e) {
}
}
this.masterConnection = newMasterConn;
return true;
}
private void initializeSlaveConnection() throws SQLException {
if (this.slaveHosts.size() == 0) {
return;
}
StringBuffer slaveUrl = new StringBuffer(NonRegisteringDriver.LOADBALANCE_URL_PREFIX);
boolean firstHost = true;
for (String host : this.slaveHosts) {
if (!firstHost) {
slaveUrl.append(',');
}
slaveUrl.append(host);
firstHost = false;
}
String slaveDb = this.slaveProperties.getProperty(NonRegisteringDriver.DBNAME_PROPERTY_KEY);
slaveUrl.append("/");
if (slaveDb != null) {
slaveUrl.append(slaveDb);
}
this.slavesConnection = (com.mysql.jdbc.LoadBalancedConnection) this.driver.connect(slaveUrl.toString(), this.slaveProperties);
this.slavesConnection.setReadOnly(true);
// switch to slaves connection if we're in read-only mode and
// currently on the master. this means we didn't have any
// slaves to use until now
if (this.currentConnection != null && this.currentConnection == this.masterConnection && this.readOnly) {
switchToSlavesConnection();
}
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#clearWarnings()
*/
public void clearWarnings() throws SQLException {
getCurrentConnection().clearWarnings();
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#close()
*/
public synchronized void close() throws SQLException {
if (this.masterConnection != null) {
this.masterConnection.close();
}
if (this.slavesConnection != null) {
this.slavesConnection.close();
}
if (this.connectionGroup != null) {
this.connectionGroup.handleCloseConnection(this);
}
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#commit()
*/
public void commit() throws SQLException {
getCurrentConnection().commit();
}
public boolean isHostMaster(String host) {
if (host == null) {
return false;
}
for (String test : this.masterHosts) {
if (test.equalsIgnoreCase(host)) {
return true;
}
}
return false;
}
public boolean isHostSlave(String host) {
if (host == null) {
return false;
}
for (String test : this.slaveHosts) {
if (test.equalsIgnoreCase(host)) {
return true;
}
}
return false;
}
public synchronized void removeSlave(String host) throws SQLException {
removeSlave(host, true);
}
public synchronized void removeSlave(String host, boolean closeGently) throws SQLException {
this.slaveHosts.remove(host);
if (this.slavesConnection == null) {
return;
}
if (closeGently) {
this.slavesConnection.removeHostWhenNotInUse(host);
} else {
this.slavesConnection.removeHost(host);
}
// close the connection if it's the last slave
if (this.slaveHosts.size() == 0) {
switchToMasterConnection();
this.slavesConnection.close();
this.slavesConnection = null;
setReadOnly(this.readOnly); // maintain
}
}
public synchronized void addSlaveHost(String host) throws SQLException {
if (this.isHostSlave(host)) {
// throw new SQLException("Cannot add existing host!");
return;
}
this.slaveHosts.add(host);
if (this.slavesConnection == null) {
initializeSlaveConnection();
} else {
this.slavesConnection.addHost(host);
}
}
public synchronized void promoteSlaveToMaster(String host) throws SQLException {
if (!this.isHostSlave(host)) {
// turned this off as one might walk up the replication tree and set master
// to the current's master's master.
// throw SQLError.createSQLException("Cannot promote host " + host + " to master, as it must first be configured as a slave.", null);
}
this.masterHosts.add(host);
this.removeSlave(host);
if (this.masterConnection != null) {
this.masterConnection.addHost(host);
}
}
public synchronized void removeMasterHost(String host) throws SQLException {
this.removeMasterHost(host, true);
}
public synchronized void removeMasterHost(String host, boolean waitUntilNotInUse) throws SQLException {
this.removeMasterHost(host, waitUntilNotInUse, false);
}
public synchronized void removeMasterHost(String host, boolean waitUntilNotInUse, boolean isNowSlave) throws SQLException {
if (isNowSlave) {
this.slaveHosts.add(host);
}
this.masterHosts.remove(host);
if (this.masterConnection == null) {
return;
}
if (waitUntilNotInUse) {
this.masterConnection.removeHostWhenNotInUse(host);
} else {
this.masterConnection.removeHost(host);
}
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#createStatement()
*/
public Statement createStatement() throws SQLException {
Statement stmt = getCurrentConnection().createStatement();
((com.mysql.jdbc.Statement) stmt).setPingTarget(this);
return stmt;
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#createStatement(int, int)
*/
public Statement createStatement(int resultSetType, int resultSetConcurrency) throws SQLException {
Statement stmt = getCurrentConnection().createStatement(resultSetType, resultSetConcurrency);
((com.mysql.jdbc.Statement) stmt).setPingTarget(this);
return stmt;
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#createStatement(int, int, int)
*/
public Statement createStatement(int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
Statement stmt = getCurrentConnection().createStatement(resultSetType, resultSetConcurrency, resultSetHoldability);
((com.mysql.jdbc.Statement) stmt).setPingTarget(this);
return stmt;
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#getAutoCommit()
*/
public boolean getAutoCommit() throws SQLException {
return getCurrentConnection().getAutoCommit();
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#getCatalog()
*/
public String getCatalog() throws SQLException {
return getCurrentConnection().getCatalog();
}
public synchronized Connection getCurrentConnection() {
return this.currentConnection;
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#getHoldability()
*/
public int getHoldability() throws SQLException {
return getCurrentConnection().getHoldability();
}
public synchronized Connection getMasterConnection() {
return this.masterConnection;
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#getMetaData()
*/
public DatabaseMetaData getMetaData() throws SQLException {
return getCurrentConnection().getMetaData();
}
public synchronized Connection getSlavesConnection() {
return this.slavesConnection;
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#getTransactionIsolation()
*/
public int getTransactionIsolation() throws SQLException {
return getCurrentConnection().getTransactionIsolation();
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#getTypeMap()
*/
public Map> getTypeMap() throws SQLException {
return getCurrentConnection().getTypeMap();
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#getWarnings()
*/
public SQLWarning getWarnings() throws SQLException {
return getCurrentConnection().getWarnings();
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#isClosed()
*/
public boolean isClosed() throws SQLException {
return getCurrentConnection().isClosed();
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#isReadOnly()
*/
public synchronized boolean isReadOnly() throws SQLException {
return this.readOnly;
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#nativeSQL(java.lang.String)
*/
public String nativeSQL(String sql) throws SQLException {
return getCurrentConnection().nativeSQL(sql);
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#prepareCall(java.lang.String)
*/
public CallableStatement prepareCall(String sql) throws SQLException {
return getCurrentConnection().prepareCall(sql);
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#prepareCall(java.lang.String, int, int)
*/
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
return getCurrentConnection().prepareCall(sql, resultSetType, resultSetConcurrency);
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#prepareCall(java.lang.String, int, int, int)
*/
public CallableStatement prepareCall(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
return getCurrentConnection().prepareCall(sql, resultSetType, resultSetConcurrency, resultSetHoldability);
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#prepareStatement(java.lang.String)
*/
public PreparedStatement prepareStatement(String sql) throws SQLException {
PreparedStatement pstmt = getCurrentConnection().prepareStatement(sql);
((com.mysql.jdbc.Statement) pstmt).setPingTarget(this);
return pstmt;
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#prepareStatement(java.lang.String, int)
*/
public PreparedStatement prepareStatement(String sql, int autoGeneratedKeys) throws SQLException {
PreparedStatement pstmt = getCurrentConnection().prepareStatement(sql, autoGeneratedKeys);
((com.mysql.jdbc.Statement) pstmt).setPingTarget(this);
return pstmt;
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#prepareStatement(java.lang.String, int, int)
*/
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
PreparedStatement pstmt = getCurrentConnection().prepareStatement(sql, resultSetType, resultSetConcurrency);
((com.mysql.jdbc.Statement) pstmt).setPingTarget(this);
return pstmt;
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#prepareStatement(java.lang.String, int, int,
* int)
*/
public PreparedStatement prepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
PreparedStatement pstmt = getCurrentConnection().prepareStatement(sql, resultSetType, resultSetConcurrency, resultSetHoldability);
((com.mysql.jdbc.Statement) pstmt).setPingTarget(this);
return pstmt;
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#prepareStatement(java.lang.String, int[])
*/
public PreparedStatement prepareStatement(String sql, int[] columnIndexes) throws SQLException {
PreparedStatement pstmt = getCurrentConnection().prepareStatement(sql, columnIndexes);
((com.mysql.jdbc.Statement) pstmt).setPingTarget(this);
return pstmt;
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#prepareStatement(java.lang.String,
* java.lang.String[])
*/
public PreparedStatement prepareStatement(String sql, String[] columnNames) throws SQLException {
PreparedStatement pstmt = getCurrentConnection().prepareStatement(sql, columnNames);
((com.mysql.jdbc.Statement) pstmt).setPingTarget(this);
return pstmt;
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#releaseSavepoint(java.sql.Savepoint)
*/
public void releaseSavepoint(Savepoint savepoint) throws SQLException {
getCurrentConnection().releaseSavepoint(savepoint);
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#rollback()
*/
public void rollback() throws SQLException {
getCurrentConnection().rollback();
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#rollback(java.sql.Savepoint)
*/
public void rollback(Savepoint savepoint) throws SQLException {
getCurrentConnection().rollback(savepoint);
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#setAutoCommit(boolean)
*/
public void setAutoCommit(boolean autoCommit) throws SQLException {
getCurrentConnection().setAutoCommit(autoCommit);
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#setCatalog(java.lang.String)
*/
public void setCatalog(String catalog) throws SQLException {
getCurrentConnection().setCatalog(catalog);
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#setHoldability(int)
*/
public void setHoldability(int holdability) throws SQLException {
getCurrentConnection().setHoldability(holdability);
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#setReadOnly(boolean)
*/
public synchronized void setReadOnly(boolean readOnly) throws SQLException {
if (readOnly) {
if (this.currentConnection != this.slavesConnection) {
switchToSlavesConnection();
}
} else {
if (this.currentConnection != this.masterConnection) {
switchToMasterConnection();
}
}
this.readOnly = readOnly;
// allow master connection to be set to/from read-only if
// there are no slaves
if (this.currentConnection == this.masterConnection) {
this.currentConnection.setReadOnly(this.readOnly);
}
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#setSavepoint()
*/
public Savepoint setSavepoint() throws SQLException {
return getCurrentConnection().setSavepoint();
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#setSavepoint(java.lang.String)
*/
public Savepoint setSavepoint(String name) throws SQLException {
return getCurrentConnection().setSavepoint(name);
}
/*
* (non-Javadoc)
*
* @see java.sql.Connection#setTransactionIsolation(int)
*/
public void setTransactionIsolation(int level) throws SQLException {
getCurrentConnection().setTransactionIsolation(level);
}
// For testing
private synchronized void switchToMasterConnection() throws SQLException {
if (this.masterConnection == null || this.masterConnection.isClosed()) {
this.initializeMasterConnection();
}
swapConnections(this.masterConnection, this.slavesConnection);
this.masterConnection.setReadOnly(false);
}
private synchronized void switchToSlavesConnection() throws SQLException {
if (this.slavesConnection == null || this.slavesConnection.isClosed()) {
this.initializeSlaveConnection();
}
if (this.slavesConnection != null) {
swapConnections(this.slavesConnection, this.masterConnection);
this.slavesConnection.setReadOnly(true);
}
}
/**
* Swaps current context (catalog, autocommit and txn_isolation) from
* sourceConnection to targetConnection, and makes targetConnection
* the "current" connection that will be used for queries.
*
* @param switchToConnection
* the connection to swap from
* @param switchFromConnection
* the connection to swap to
*
* @throws SQLException
* if an error occurs
*/
private synchronized void swapConnections(Connection switchToConnection, Connection switchFromConnection) throws SQLException {
String switchFromCatalog = switchFromConnection.getCatalog();
String switchToCatalog = switchToConnection.getCatalog();
if (switchToCatalog != null && !switchToCatalog.equals(switchFromCatalog)) {
switchToConnection.setCatalog(switchFromCatalog);
} else if (switchFromCatalog != null) {
switchToConnection.setCatalog(switchFromCatalog);
}
boolean switchToAutoCommit = switchToConnection.getAutoCommit();
boolean switchFromConnectionAutoCommit = switchFromConnection.getAutoCommit();
if (switchFromConnectionAutoCommit != switchToAutoCommit) {
switchToConnection.setAutoCommit(switchFromConnectionAutoCommit);
}
int switchToIsolation = switchToConnection.getTransactionIsolation();
int switchFromIsolation = switchFromConnection.getTransactionIsolation();
if (switchFromIsolation != switchToIsolation) {
switchToConnection.setTransactionIsolation(switchFromIsolation);
}
switchToConnection.setSessionMaxRows(switchFromConnection.getSessionMaxRows());
this.currentConnection = switchToConnection;
}
public synchronized void doPing() throws SQLException {
boolean isMasterConn = this.isMasterConnection();
if (this.masterConnection != null) {
try {
this.masterConnection.ping();
} catch (SQLException e) {
if (isMasterConn) {
// flip to slave connections:
this.currentConnection = this.slavesConnection;
this.masterConnection = null;
throw e;
}
}
} else {
this.initializeMasterConnection();
}
if (this.slavesConnection != null) {
try {
this.slavesConnection.ping();
} catch (SQLException e) {
if (!isMasterConn) {
// flip to master connection:
this.currentConnection = this.masterConnection;
this.slavesConnection = null;
throw e;
}
}
} else {
this.initializeSlaveConnection();
}
}
public synchronized void changeUser(String userName, String newPassword) throws SQLException {
this.masterConnection.changeUser(userName, newPassword);
this.slavesConnection.changeUser(userName, newPassword);
}
public synchronized void clearHasTriedMaster() {
this.masterConnection.clearHasTriedMaster();
this.slavesConnection.clearHasTriedMaster();
}
public PreparedStatement clientPrepareStatement(String sql) throws SQLException {
PreparedStatement pstmt = getCurrentConnection().clientPrepareStatement(sql);
((com.mysql.jdbc.Statement) pstmt).setPingTarget(this);
return pstmt;
}
public PreparedStatement clientPrepareStatement(String sql, int autoGenKeyIndex) throws SQLException {
PreparedStatement pstmt = getCurrentConnection().clientPrepareStatement(sql, autoGenKeyIndex);
((com.mysql.jdbc.Statement) pstmt).setPingTarget(this);
return pstmt;
}
public PreparedStatement clientPrepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
PreparedStatement pstmt = getCurrentConnection().clientPrepareStatement(sql, resultSetType, resultSetConcurrency);
((com.mysql.jdbc.Statement) pstmt).setPingTarget(this);
return pstmt;
}
public PreparedStatement clientPrepareStatement(String sql, int[] autoGenKeyIndexes) throws SQLException {
PreparedStatement pstmt = getCurrentConnection().clientPrepareStatement(sql, autoGenKeyIndexes);
((com.mysql.jdbc.Statement) pstmt).setPingTarget(this);
return pstmt;
}
public PreparedStatement clientPrepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
PreparedStatement pstmt = getCurrentConnection().clientPrepareStatement(sql, resultSetType, resultSetConcurrency, resultSetHoldability);
((com.mysql.jdbc.Statement) pstmt).setPingTarget(this);
return pstmt;
}
public PreparedStatement clientPrepareStatement(String sql, String[] autoGenKeyColNames) throws SQLException {
PreparedStatement pstmt = getCurrentConnection().clientPrepareStatement(sql, autoGenKeyColNames);
((com.mysql.jdbc.Statement) pstmt).setPingTarget(this);
return pstmt;
}
public int getActiveStatementCount() {
return getCurrentConnection().getActiveStatementCount();
}
public long getIdleFor() {
return getCurrentConnection().getIdleFor();
}
public Log getLog() throws SQLException {
return getCurrentConnection().getLog();
}
/**
* @deprecated replaced by getServerCharset()
*/
@Deprecated
public String getServerCharacterEncoding() {
return getServerCharset();
}
public String getServerCharset() {
return getCurrentConnection().getServerCharset();
}
public TimeZone getServerTimezoneTZ() {
return getCurrentConnection().getServerTimezoneTZ();
}
public String getStatementComment() {
return getCurrentConnection().getStatementComment();
}
public boolean hasTriedMaster() {
return getCurrentConnection().hasTriedMaster();
}
public void initializeExtension(Extension ex) throws SQLException {
getCurrentConnection().initializeExtension(ex);
}
public boolean isAbonormallyLongQuery(long millisOrNanos) {
return getCurrentConnection().isAbonormallyLongQuery(millisOrNanos);
}
public boolean isInGlobalTx() {
return getCurrentConnection().isInGlobalTx();
}
public boolean isMasterConnection() {
if (this.currentConnection == null) {
return true;
}
return this.currentConnection == this.masterConnection;
}
public boolean isNoBackslashEscapesSet() {
return getCurrentConnection().isNoBackslashEscapesSet();
}
public boolean lowerCaseTableNames() {
return getCurrentConnection().lowerCaseTableNames();
}
public boolean parserKnowsUnicode() {
return getCurrentConnection().parserKnowsUnicode();
}
public synchronized void ping() throws SQLException {
try {
this.masterConnection.ping();
} catch (SQLException e) {
if (this.isMasterConnection()) {
throw e;
}
}
try {
this.slavesConnection.ping();
} catch (SQLException e) {
if (!this.isMasterConnection()) {
throw e;
}
}
}
public void reportQueryTime(long millisOrNanos) {
getCurrentConnection().reportQueryTime(millisOrNanos);
}
public void resetServerState() throws SQLException {
getCurrentConnection().resetServerState();
}
public PreparedStatement serverPrepareStatement(String sql) throws SQLException {
PreparedStatement pstmt = getCurrentConnection().serverPrepareStatement(sql);
((com.mysql.jdbc.Statement) pstmt).setPingTarget(this);
return pstmt;
}
public PreparedStatement serverPrepareStatement(String sql, int autoGenKeyIndex) throws SQLException {
PreparedStatement pstmt = getCurrentConnection().serverPrepareStatement(sql, autoGenKeyIndex);
((com.mysql.jdbc.Statement) pstmt).setPingTarget(this);
return pstmt;
}
public PreparedStatement serverPrepareStatement(String sql, int resultSetType, int resultSetConcurrency) throws SQLException {
PreparedStatement pstmt = getCurrentConnection().serverPrepareStatement(sql, resultSetType, resultSetConcurrency);
((com.mysql.jdbc.Statement) pstmt).setPingTarget(this);
return pstmt;
}
public PreparedStatement serverPrepareStatement(String sql, int resultSetType, int resultSetConcurrency, int resultSetHoldability) throws SQLException {
PreparedStatement pstmt = getCurrentConnection().serverPrepareStatement(sql, resultSetType, resultSetConcurrency, resultSetHoldability);
((com.mysql.jdbc.Statement) pstmt).setPingTarget(this);
return pstmt;
}
public PreparedStatement serverPrepareStatement(String sql, int[] autoGenKeyIndexes) throws SQLException {
PreparedStatement pstmt = getCurrentConnection().serverPrepareStatement(sql, autoGenKeyIndexes);
((com.mysql.jdbc.Statement) pstmt).setPingTarget(this);
return pstmt;
}
public PreparedStatement serverPrepareStatement(String sql, String[] autoGenKeyColNames) throws SQLException {
PreparedStatement pstmt = getCurrentConnection().serverPrepareStatement(sql, autoGenKeyColNames);
((com.mysql.jdbc.Statement) pstmt).setPingTarget(this);
return pstmt;
}
public void setFailedOver(boolean flag) {
getCurrentConnection().setFailedOver(flag);
}
public void setPreferSlaveDuringFailover(boolean flag) {
getCurrentConnection().setPreferSlaveDuringFailover(flag);
}
public synchronized void setStatementComment(String comment) {
this.masterConnection.setStatementComment(comment);
this.slavesConnection.setStatementComment(comment);
}
public void shutdownServer() throws SQLException {
getCurrentConnection().shutdownServer();
}
public boolean supportsIsolationLevel() {
return getCurrentConnection().supportsIsolationLevel();
}
public boolean supportsQuotedIdentifiers() {
return getCurrentConnection().supportsQuotedIdentifiers();
}
public boolean supportsTransactions() {
return getCurrentConnection().supportsTransactions();
}
public boolean versionMeetsMinimum(int major, int minor, int subminor) throws SQLException {
return getCurrentConnection().versionMeetsMinimum(major, minor, subminor);
}
public String exposeAsXml() throws SQLException {
return getCurrentConnection().exposeAsXml();
}
public boolean getAllowLoadLocalInfile() {
return getCurrentConnection().getAllowLoadLocalInfile();
}
public boolean getAllowMultiQueries() {
return getCurrentConnection().getAllowMultiQueries();
}
public boolean getAllowNanAndInf() {
return getCurrentConnection().getAllowNanAndInf();
}
public boolean getAllowUrlInLocalInfile() {
return getCurrentConnection().getAllowUrlInLocalInfile();
}
public boolean getAlwaysSendSetIsolation() {
return getCurrentConnection().getAlwaysSendSetIsolation();
}
public boolean getAutoClosePStmtStreams() {
return getCurrentConnection().getAutoClosePStmtStreams();
}
public boolean getAutoDeserialize() {
return getCurrentConnection().getAutoDeserialize();
}
public boolean getAutoGenerateTestcaseScript() {
return getCurrentConnection().getAutoGenerateTestcaseScript();
}
public boolean getAutoReconnectForPools() {
return getCurrentConnection().getAutoReconnectForPools();
}
public boolean getAutoSlowLog() {
return getCurrentConnection().getAutoSlowLog();
}
public int getBlobSendChunkSize() {
return getCurrentConnection().getBlobSendChunkSize();
}
public boolean getBlobsAreStrings() {
return getCurrentConnection().getBlobsAreStrings();
}
public boolean getCacheCallableStatements() {
return getCurrentConnection().getCacheCallableStatements();
}
public boolean getCacheCallableStmts() {
return getCurrentConnection().getCacheCallableStmts();
}
public boolean getCachePrepStmts() {
return getCurrentConnection().getCachePrepStmts();
}
public boolean getCachePreparedStatements() {
return getCurrentConnection().getCachePreparedStatements();
}
public boolean getCacheResultSetMetadata() {
return getCurrentConnection().getCacheResultSetMetadata();
}
public boolean getCacheServerConfiguration() {
return getCurrentConnection().getCacheServerConfiguration();
}
public int getCallableStatementCacheSize() {
return getCurrentConnection().getCallableStatementCacheSize();
}
public int getCallableStmtCacheSize() {
return getCurrentConnection().getCallableStmtCacheSize();
}
public boolean getCapitalizeTypeNames() {
return getCurrentConnection().getCapitalizeTypeNames();
}
public String getCharacterSetResults() {
return getCurrentConnection().getCharacterSetResults();
}
public String getClientCertificateKeyStorePassword() {
return getCurrentConnection().getClientCertificateKeyStorePassword();
}
public String getClientCertificateKeyStoreType() {
return getCurrentConnection().getClientCertificateKeyStoreType();
}
public String getClientCertificateKeyStoreUrl() {
return getCurrentConnection().getClientCertificateKeyStoreUrl();
}
public String getClientInfoProvider() {
return getCurrentConnection().getClientInfoProvider();
}
public String getClobCharacterEncoding() {
return getCurrentConnection().getClobCharacterEncoding();
}
public boolean getClobberStreamingResults() {
return getCurrentConnection().getClobberStreamingResults();
}
public int getConnectTimeout() {
return getCurrentConnection().getConnectTimeout();
}
public String getConnectionCollation() {
return getCurrentConnection().getConnectionCollation();
}
public String getConnectionLifecycleInterceptors() {
return getCurrentConnection().getConnectionLifecycleInterceptors();
}
public boolean getContinueBatchOnError() {
return getCurrentConnection().getContinueBatchOnError();
}
public boolean getCreateDatabaseIfNotExist() {
return getCurrentConnection().getCreateDatabaseIfNotExist();
}
public int getDefaultFetchSize() {
return getCurrentConnection().getDefaultFetchSize();
}
public boolean getDontTrackOpenResources() {
return getCurrentConnection().getDontTrackOpenResources();
}
public boolean getDumpMetadataOnColumnNotFound() {
return getCurrentConnection().getDumpMetadataOnColumnNotFound();
}
public boolean getDumpQueriesOnException() {
return getCurrentConnection().getDumpQueriesOnException();
}
public boolean getDynamicCalendars() {
return getCurrentConnection().getDynamicCalendars();
}
public boolean getElideSetAutoCommits() {
return getCurrentConnection().getElideSetAutoCommits();
}
public boolean getEmptyStringsConvertToZero() {
return getCurrentConnection().getEmptyStringsConvertToZero();
}
public boolean getEmulateLocators() {
return getCurrentConnection().getEmulateLocators();
}
public boolean getEmulateUnsupportedPstmts() {
return getCurrentConnection().getEmulateUnsupportedPstmts();
}
public boolean getEnablePacketDebug() {
return getCurrentConnection().getEnablePacketDebug();
}
public boolean getEnableQueryTimeouts() {
return getCurrentConnection().getEnableQueryTimeouts();
}
public String getEncoding() {
return getCurrentConnection().getEncoding();
}
public boolean getExplainSlowQueries() {
return getCurrentConnection().getExplainSlowQueries();
}
public boolean getFailOverReadOnly() {
return getCurrentConnection().getFailOverReadOnly();
}
public boolean getFunctionsNeverReturnBlobs() {
return getCurrentConnection().getFunctionsNeverReturnBlobs();
}
public boolean getGatherPerfMetrics() {
return getCurrentConnection().getGatherPerfMetrics();
}
public boolean getGatherPerformanceMetrics() {
return getCurrentConnection().getGatherPerformanceMetrics();
}
public boolean getGenerateSimpleParameterMetadata() {
return getCurrentConnection().getGenerateSimpleParameterMetadata();
}
public boolean getHoldResultsOpenOverStatementClose() {
return getCurrentConnection().getHoldResultsOpenOverStatementClose();
}
public boolean getIgnoreNonTxTables() {
return getCurrentConnection().getIgnoreNonTxTables();
}
public boolean getIncludeInnodbStatusInDeadlockExceptions() {
return getCurrentConnection().getIncludeInnodbStatusInDeadlockExceptions();
}
public int getInitialTimeout() {
return getCurrentConnection().getInitialTimeout();
}
public boolean getInteractiveClient() {
return getCurrentConnection().getInteractiveClient();
}
public boolean getIsInteractiveClient() {
return getCurrentConnection().getIsInteractiveClient();
}
public boolean getJdbcCompliantTruncation() {
return getCurrentConnection().getJdbcCompliantTruncation();
}
public boolean getJdbcCompliantTruncationForReads() {
return getCurrentConnection().getJdbcCompliantTruncationForReads();
}
public String getLargeRowSizeThreshold() {
return getCurrentConnection().getLargeRowSizeThreshold();
}
public String getLoadBalanceStrategy() {
return getCurrentConnection().getLoadBalanceStrategy();
}
public String getLocalSocketAddress() {
return getCurrentConnection().getLocalSocketAddress();
}
public int getLocatorFetchBufferSize() {
return getCurrentConnection().getLocatorFetchBufferSize();
}
public boolean getLogSlowQueries() {
return getCurrentConnection().getLogSlowQueries();
}
public boolean getLogXaCommands() {
return getCurrentConnection().getLogXaCommands();
}
public String getLogger() {
return getCurrentConnection().getLogger();
}
public String getLoggerClassName() {
return getCurrentConnection().getLoggerClassName();
}
public boolean getMaintainTimeStats() {
return getCurrentConnection().getMaintainTimeStats();
}
public int getMaxQuerySizeToLog() {
return getCurrentConnection().getMaxQuerySizeToLog();
}
public int getMaxReconnects() {
return getCurrentConnection().getMaxReconnects();
}
public int getMaxRows() {
return getCurrentConnection().getMaxRows();
}
public int getMetadataCacheSize() {
return getCurrentConnection().getMetadataCacheSize();
}
public int getNetTimeoutForStreamingResults() {
return getCurrentConnection().getNetTimeoutForStreamingResults();
}
public boolean getNoAccessToProcedureBodies() {
return getCurrentConnection().getNoAccessToProcedureBodies();
}
public boolean getNoDatetimeStringSync() {
return getCurrentConnection().getNoDatetimeStringSync();
}
public boolean getNoTimezoneConversionForTimeType() {
return getCurrentConnection().getNoTimezoneConversionForTimeType();
}
public boolean getNullCatalogMeansCurrent() {
return getCurrentConnection().getNullCatalogMeansCurrent();
}
public boolean getNullNamePatternMatchesAll() {
return getCurrentConnection().getNullNamePatternMatchesAll();
}
public boolean getOverrideSupportsIntegrityEnhancementFacility() {
return getCurrentConnection().getOverrideSupportsIntegrityEnhancementFacility();
}
public int getPacketDebugBufferSize() {
return getCurrentConnection().getPacketDebugBufferSize();
}
public boolean getPadCharsWithSpace() {
return getCurrentConnection().getPadCharsWithSpace();
}
public boolean getParanoid() {
return getCurrentConnection().getParanoid();
}
public boolean getPedantic() {
return getCurrentConnection().getPedantic();
}
public boolean getPinGlobalTxToPhysicalConnection() {
return getCurrentConnection().getPinGlobalTxToPhysicalConnection();
}
public boolean getPopulateInsertRowWithDefaultValues() {
return getCurrentConnection().getPopulateInsertRowWithDefaultValues();
}
public int getPrepStmtCacheSize() {
return getCurrentConnection().getPrepStmtCacheSize();
}
public int getPrepStmtCacheSqlLimit() {
return getCurrentConnection().getPrepStmtCacheSqlLimit();
}
public int getPreparedStatementCacheSize() {
return getCurrentConnection().getPreparedStatementCacheSize();
}
public int getPreparedStatementCacheSqlLimit() {
return getCurrentConnection().getPreparedStatementCacheSqlLimit();
}
public boolean getProcessEscapeCodesForPrepStmts() {
return getCurrentConnection().getProcessEscapeCodesForPrepStmts();
}
public boolean getProfileSQL() {
return getCurrentConnection().getProfileSQL();
}
public boolean getProfileSql() {
return getCurrentConnection().getProfileSql();
}
public String getProfilerEventHandler() {
return getCurrentConnection().getProfilerEventHandler();
}
public String getPropertiesTransform() {
return getCurrentConnection().getPropertiesTransform();
}
public int getQueriesBeforeRetryMaster() {
return getCurrentConnection().getQueriesBeforeRetryMaster();
}
public boolean getReconnectAtTxEnd() {
return getCurrentConnection().getReconnectAtTxEnd();
}
public boolean getRelaxAutoCommit() {
return getCurrentConnection().getRelaxAutoCommit();
}
public int getReportMetricsIntervalMillis() {
return getCurrentConnection().getReportMetricsIntervalMillis();
}
public boolean getRequireSSL() {
return getCurrentConnection().getRequireSSL();
}
public String getResourceId() {
return getCurrentConnection().getResourceId();
}
public int getResultSetSizeThreshold() {
return getCurrentConnection().getResultSetSizeThreshold();
}
public boolean getRewriteBatchedStatements() {
return getCurrentConnection().getRewriteBatchedStatements();
}
public boolean getRollbackOnPooledClose() {
return getCurrentConnection().getRollbackOnPooledClose();
}
public boolean getRoundRobinLoadBalance() {
return getCurrentConnection().getRoundRobinLoadBalance();
}
public boolean getRunningCTS13() {
return getCurrentConnection().getRunningCTS13();
}
public int getSecondsBeforeRetryMaster() {
return getCurrentConnection().getSecondsBeforeRetryMaster();
}
public int getSelfDestructOnPingMaxOperations() {
return getCurrentConnection().getSelfDestructOnPingMaxOperations();
}
public int getSelfDestructOnPingSecondsLifetime() {
return getCurrentConnection().getSelfDestructOnPingSecondsLifetime();
}
public String getServerTimezone() {
return getCurrentConnection().getServerTimezone();
}
public String getSessionVariables() {
return getCurrentConnection().getSessionVariables();
}
public int getSlowQueryThresholdMillis() {
return getCurrentConnection().getSlowQueryThresholdMillis();
}
public long getSlowQueryThresholdNanos() {
return getCurrentConnection().getSlowQueryThresholdNanos();
}
public String getSocketFactory() {
return getCurrentConnection().getSocketFactory();
}
public String getSocketFactoryClassName() {
return getCurrentConnection().getSocketFactoryClassName();
}
public int getSocketTimeout() {
return getCurrentConnection().getSocketTimeout();
}
public String getStatementInterceptors() {
return getCurrentConnection().getStatementInterceptors();
}
public boolean getStrictFloatingPoint() {
return getCurrentConnection().getStrictFloatingPoint();
}
public boolean getStrictUpdates() {
return getCurrentConnection().getStrictUpdates();
}
public boolean getTcpKeepAlive() {
return getCurrentConnection().getTcpKeepAlive();
}
public boolean getTcpNoDelay() {
return getCurrentConnection().getTcpNoDelay();
}
public int getTcpRcvBuf() {
return getCurrentConnection().getTcpRcvBuf();
}
public int getTcpSndBuf() {
return getCurrentConnection().getTcpSndBuf();
}
public int getTcpTrafficClass() {
return getCurrentConnection().getTcpTrafficClass();
}
public boolean getTinyInt1isBit() {
return getCurrentConnection().getTinyInt1isBit();
}
public boolean getTraceProtocol() {
return getCurrentConnection().getTraceProtocol();
}
public boolean getTransformedBitIsBoolean() {
return getCurrentConnection().getTransformedBitIsBoolean();
}
public boolean getTreatUtilDateAsTimestamp() {
return getCurrentConnection().getTreatUtilDateAsTimestamp();
}
public String getTrustCertificateKeyStorePassword() {
return getCurrentConnection().getTrustCertificateKeyStorePassword();
}
public String getTrustCertificateKeyStoreType() {
return getCurrentConnection().getTrustCertificateKeyStoreType();
}
public String getTrustCertificateKeyStoreUrl() {
return getCurrentConnection().getTrustCertificateKeyStoreUrl();
}
public boolean getUltraDevHack() {
return getCurrentConnection().getUltraDevHack();
}
public boolean getUseBlobToStoreUTF8OutsideBMP() {
return getCurrentConnection().getUseBlobToStoreUTF8OutsideBMP();
}
public boolean getUseCompression() {
return getCurrentConnection().getUseCompression();
}
public String getUseConfigs() {
return getCurrentConnection().getUseConfigs();
}
public boolean getUseCursorFetch() {
return getCurrentConnection().getUseCursorFetch();
}
public boolean getUseDirectRowUnpack() {
return getCurrentConnection().getUseDirectRowUnpack();
}
public boolean getUseDynamicCharsetInfo() {
return getCurrentConnection().getUseDynamicCharsetInfo();
}
public boolean getUseFastDateParsing() {
return getCurrentConnection().getUseFastDateParsing();
}
public boolean getUseFastIntParsing() {
return getCurrentConnection().getUseFastIntParsing();
}
public boolean getUseGmtMillisForDatetimes() {
return getCurrentConnection().getUseGmtMillisForDatetimes();
}
public boolean getUseHostsInPrivileges() {
return getCurrentConnection().getUseHostsInPrivileges();
}
public boolean getUseInformationSchema() {
return getCurrentConnection().getUseInformationSchema();
}
public boolean getUseJDBCCompliantTimezoneShift() {
return getCurrentConnection().getUseJDBCCompliantTimezoneShift();
}
public boolean getUseJvmCharsetConverters() {
return getCurrentConnection().getUseJvmCharsetConverters();
}
public boolean getUseLegacyDatetimeCode() {
return getCurrentConnection().getUseLegacyDatetimeCode();
}
public boolean getUseLocalSessionState() {
return getCurrentConnection().getUseLocalSessionState();
}
public boolean getUseNanosForElapsedTime() {
return getCurrentConnection().getUseNanosForElapsedTime();
}
public boolean getUseOldAliasMetadataBehavior() {
return getCurrentConnection().getUseOldAliasMetadataBehavior();
}
public boolean getUseOldUTF8Behavior() {
return getCurrentConnection().getUseOldUTF8Behavior();
}
public boolean getUseOnlyServerErrorMessages() {
return getCurrentConnection().getUseOnlyServerErrorMessages();
}
public boolean getUseReadAheadInput() {
return getCurrentConnection().getUseReadAheadInput();
}
public boolean getUseSSL() {
return getCurrentConnection().getUseSSL();
}
public boolean getUseSSPSCompatibleTimezoneShift() {
return getCurrentConnection().getUseSSPSCompatibleTimezoneShift();
}
public boolean getUseServerPrepStmts() {
return getCurrentConnection().getUseServerPrepStmts();
}
public boolean getUseServerPreparedStmts() {
return getCurrentConnection().getUseServerPreparedStmts();
}
public boolean getUseSqlStateCodes() {
return getCurrentConnection().getUseSqlStateCodes();
}
public boolean getUseStreamLengthsInPrepStmts() {
return getCurrentConnection().getUseStreamLengthsInPrepStmts();
}
public boolean getUseTimezone() {
return getCurrentConnection().getUseTimezone();
}
public boolean getUseUltraDevWorkAround() {
return getCurrentConnection().getUseUltraDevWorkAround();
}
public boolean getUseUnbufferedInput() {
return getCurrentConnection().getUseUnbufferedInput();
}
public boolean getUseUnicode() {
return getCurrentConnection().getUseUnicode();
}
public boolean getUseUsageAdvisor() {
return getCurrentConnection().getUseUsageAdvisor();
}
public String getUtf8OutsideBmpExcludedColumnNamePattern() {
return getCurrentConnection().getUtf8OutsideBmpExcludedColumnNamePattern();
}
public String getUtf8OutsideBmpIncludedColumnNamePattern() {
return getCurrentConnection().getUtf8OutsideBmpIncludedColumnNamePattern();
}
public boolean getVerifyServerCertificate() {
return getCurrentConnection().getVerifyServerCertificate();
}
public boolean getYearIsDateType() {
return getCurrentConnection().getYearIsDateType();
}
public String getZeroDateTimeBehavior() {
return getCurrentConnection().getZeroDateTimeBehavior();
}
public void setAllowLoadLocalInfile(boolean property) {
// not runtime configurable
}
public void setAllowMultiQueries(boolean property) {
// not runtime configurable
}
public void setAllowNanAndInf(boolean flag) {
// not runtime configurable
}
public void setAllowUrlInLocalInfile(boolean flag) {
// not runtime configurable
}
public void setAlwaysSendSetIsolation(boolean flag) {
// not runtime configurable
}
public void setAutoClosePStmtStreams(boolean flag) {
// not runtime configurable
}
public void setAutoDeserialize(boolean flag) {
// not runtime configurable
}
public void setAutoGenerateTestcaseScript(boolean flag) {
// not runtime configurable
}
public void setAutoReconnect(boolean flag) {
// not runtime configurable
}
public void setAutoReconnectForConnectionPools(boolean property) {
// not runtime configurable
}
public void setAutoReconnectForPools(boolean flag) {
// not runtime configurable
}
public void setAutoSlowLog(boolean flag) {
// not runtime configurable
}
public void setBlobSendChunkSize(String value) throws SQLException {
// not runtime configurable
}
public void setBlobsAreStrings(boolean flag) {
// not runtime configurable
}
public void setCacheCallableStatements(boolean flag) {
// not runtime configurable
}
public void setCacheCallableStmts(boolean flag) {
// not runtime configurable
}
public void setCachePrepStmts(boolean flag) {
// not runtime configurable
}
public void setCachePreparedStatements(boolean flag) {
// not runtime configurable
}
public void setCacheResultSetMetadata(boolean property) {
// not runtime configurable
}
public void setCacheServerConfiguration(boolean flag) {
// not runtime configurable
}
public void setCallableStatementCacheSize(int size) {
// not runtime configurable
}
public void setCallableStmtCacheSize(int cacheSize) {
// not runtime configurable
}
public void setCapitalizeDBMDTypes(boolean property) {
// not runtime configurable
}
public void setCapitalizeTypeNames(boolean flag) {
// not runtime configurable
}
public void setCharacterEncoding(String encoding) {
// not runtime configurable
}
public void setCharacterSetResults(String characterSet) {
// not runtime configurable
}
public void setClientCertificateKeyStorePassword(String value) {
// not runtime configurable
}
public void setClientCertificateKeyStoreType(String value) {
// not runtime configurable
}
public void setClientCertificateKeyStoreUrl(String value) {
// not runtime configurable
}
public void setClientInfoProvider(String classname) {
// not runtime configurable
}
public void setClobCharacterEncoding(String encoding) {
// not runtime configurable
}
public void setClobberStreamingResults(boolean flag) {
// not runtime configurable
}
public void setConnectTimeout(int timeoutMs) {
// not runtime configurable
}
public void setConnectionCollation(String collation) {
// not runtime configurable
}
public void setConnectionLifecycleInterceptors(String interceptors) {
// not runtime configurable
}
public void setContinueBatchOnError(boolean property) {
// not runtime configurable
}
public void setCreateDatabaseIfNotExist(boolean flag) {
// not runtime configurable
}
public void setDefaultFetchSize(int n) {
// not runtime configurable
}
public void setDetectServerPreparedStmts(boolean property) {
// not runtime configurable
}
public void setDontTrackOpenResources(boolean flag) {
// not runtime configurable
}
public void setDumpMetadataOnColumnNotFound(boolean flag) {
// not runtime configurable
}
public void setDumpQueriesOnException(boolean flag) {
// not runtime configurable
}
public void setDynamicCalendars(boolean flag) {
// not runtime configurable
}
public void setElideSetAutoCommits(boolean flag) {
// not runtime configurable
}
public void setEmptyStringsConvertToZero(boolean flag) {
// not runtime configurable
}
public void setEmulateLocators(boolean property) {
// not runtime configurable
}
public void setEmulateUnsupportedPstmts(boolean flag) {
// not runtime configurable
}
public void setEnablePacketDebug(boolean flag) {
// not runtime configurable
}
public void setEnableQueryTimeouts(boolean flag) {
// not runtime configurable
}
public void setEncoding(String property) {
// not runtime configurable
}
public void setExplainSlowQueries(boolean flag) {
// not runtime configurable
}
public void setFailOverReadOnly(boolean flag) {
// not runtime configurable
}
public void setFunctionsNeverReturnBlobs(boolean flag) {
// not runtime configurable
}
public void setGatherPerfMetrics(boolean flag) {
// not runtime configurable
}
public void setGatherPerformanceMetrics(boolean flag) {
// not runtime configurable
}
public void setGenerateSimpleParameterMetadata(boolean flag) {
// not runtime configurable
}
public void setHoldResultsOpenOverStatementClose(boolean flag) {
// not runtime configurable
}
public void setIgnoreNonTxTables(boolean property) {
// not runtime configurable
}
public void setIncludeInnodbStatusInDeadlockExceptions(boolean flag) {
// not runtime configurable
}
public void setInitialTimeout(int property) {
// not runtime configurable
}
public void setInteractiveClient(boolean property) {
// not runtime configurable
}
public void setIsInteractiveClient(boolean property) {
// not runtime configurable
}
public void setJdbcCompliantTruncation(boolean flag) {
// not runtime configurable
}
public void setJdbcCompliantTruncationForReads(boolean jdbcCompliantTruncationForReads) {
// not runtime configurable
}
public void setLargeRowSizeThreshold(String value) {
// not runtime configurable
}
public void setLoadBalanceStrategy(String strategy) {
// not runtime configurable
}
public void setLocalSocketAddress(String address) {
// not runtime configurable
}
public void setLocatorFetchBufferSize(String value) throws SQLException {
// not runtime configurable
}
public void setLogSlowQueries(boolean flag) {
// not runtime configurable
}
public void setLogXaCommands(boolean flag) {
// not runtime configurable
}
public void setLogger(String property) {
// not runtime configurable
}
public void setLoggerClassName(String className) {
// not runtime configurable
}
public void setMaintainTimeStats(boolean flag) {
// not runtime configurable
}
public void setMaxQuerySizeToLog(int sizeInBytes) {
// not runtime configurable
}
public void setMaxReconnects(int property) {
// not runtime configurable
}
public void setMaxRows(int property) {
// not runtime configurable
}
public void setMetadataCacheSize(int value) {
// not runtime configurable
}
public void setNetTimeoutForStreamingResults(int value) {
// not runtime configurable
}
public void setNoAccessToProcedureBodies(boolean flag) {
// not runtime configurable
}
public void setNoDatetimeStringSync(boolean flag) {
// not runtime configurable
}
public void setNoTimezoneConversionForTimeType(boolean flag) {
// not runtime configurable
}
public void setNullCatalogMeansCurrent(boolean value) {
// not runtime configurable
}
public void setNullNamePatternMatchesAll(boolean value) {
// not runtime configurable
}
public void setOverrideSupportsIntegrityEnhancementFacility(boolean flag) {
// not runtime configurable
}
public void setPacketDebugBufferSize(int size) {
// not runtime configurable
}
public void setPadCharsWithSpace(boolean flag) {
// not runtime configurable
}
public void setParanoid(boolean property) {
// not runtime configurable
}
public void setPedantic(boolean property) {
// not runtime configurable
}
public void setPinGlobalTxToPhysicalConnection(boolean flag) {
// not runtime configurable
}
public void setPopulateInsertRowWithDefaultValues(boolean flag) {
// not runtime configurable
}
public void setPrepStmtCacheSize(int cacheSize) {
// not runtime configurable
}
public void setPrepStmtCacheSqlLimit(int sqlLimit) {
// not runtime configurable
}
public void setPreparedStatementCacheSize(int cacheSize) {
// not runtime configurable
}
public void setPreparedStatementCacheSqlLimit(int cacheSqlLimit) {
// not runtime configurable
}
public void setProcessEscapeCodesForPrepStmts(boolean flag) {
// not runtime configurable
}
public void setProfileSQL(boolean flag) {
// not runtime configurable
}
public void setProfileSql(boolean property) {
// not runtime configurable
}
public void setProfilerEventHandler(String handler) {
// not runtime configurable
}
public void setPropertiesTransform(String value) {
// not runtime configurable
}
public void setQueriesBeforeRetryMaster(int property) {
// not runtime configurable
}
public void setReconnectAtTxEnd(boolean property) {
// not runtime configurable
}
public void setRelaxAutoCommit(boolean property) {
// not runtime configurable
}
public void setReportMetricsIntervalMillis(int millis) {
// not runtime configurable
}
public void setRequireSSL(boolean property) {
// not runtime configurable
}
public void setResourceId(String resourceId) {
// not runtime configurable
}
public void setResultSetSizeThreshold(int threshold) {
// not runtime configurable
}
public void setRetainStatementAfterResultSetClose(boolean flag) {
// not runtime configurable
}
public void setRewriteBatchedStatements(boolean flag) {
// not runtime configurable
}
public void setRollbackOnPooledClose(boolean flag) {
// not runtime configurable
}
public void setRoundRobinLoadBalance(boolean flag) {
// not runtime configurable
}
public void setRunningCTS13(boolean flag) {
// not runtime configurable
}
public void setSecondsBeforeRetryMaster(int property) {
// not runtime configurable
}
public void setSelfDestructOnPingMaxOperations(int maxOperations) {
// not runtime configurable
}
public void setSelfDestructOnPingSecondsLifetime(int seconds) {
// not runtime configurable
}
public void setServerTimezone(String property) {
// not runtime configurable
}
public void setSessionVariables(String variables) {
// not runtime configurable
}
public void setSlowQueryThresholdMillis(int millis) {
// not runtime configurable
}
public void setSlowQueryThresholdNanos(long nanos) {
// not runtime configurable
}
public void setSocketFactory(String name) {
// not runtime configurable
}
public void setSocketFactoryClassName(String property) {
// not runtime configurable
}
public void setSocketTimeout(int property) {
// not runtime configurable
}
public void setStatementInterceptors(String value) {
// not runtime configurable
}
public void setStrictFloatingPoint(boolean property) {
// not runtime configurable
}
public void setStrictUpdates(boolean property) {
// not runtime configurable
}
public void setTcpKeepAlive(boolean flag) {
// not runtime configurable
}
public void setTcpNoDelay(boolean flag) {
// not runtime configurable
}
public void setTcpRcvBuf(int bufSize) {
// not runtime configurable
}
public void setTcpSndBuf(int bufSize) {
// not runtime configurable
}
public void setTcpTrafficClass(int classFlags) {
// not runtime configurable
}
public void setTinyInt1isBit(boolean flag) {
// not runtime configurable
}
public void setTraceProtocol(boolean flag) {
// not runtime configurable
}
public void setTransformedBitIsBoolean(boolean flag) {
// not runtime configurable
}
public void setTreatUtilDateAsTimestamp(boolean flag) {
// not runtime configurable
}
public void setTrustCertificateKeyStorePassword(String value) {
// not runtime configurable
}
public void setTrustCertificateKeyStoreType(String value) {
// not runtime configurable
}
public void setTrustCertificateKeyStoreUrl(String value) {
// not runtime configurable
}
public void setUltraDevHack(boolean flag) {
// not runtime configurable
}
public void setUseBlobToStoreUTF8OutsideBMP(boolean flag) {
// not runtime configurable
}
public void setUseCompression(boolean property) {
// not runtime configurable
}
public void setUseConfigs(String configs) {
// not runtime configurable
}
public void setUseCursorFetch(boolean flag) {
// not runtime configurable
}
public void setUseDirectRowUnpack(boolean flag) {
// not runtime configurable
}
public void setUseDynamicCharsetInfo(boolean flag) {
// not runtime configurable
}
public void setUseFastDateParsing(boolean flag) {
// not runtime configurable
}
public void setUseFastIntParsing(boolean flag) {
// not runtime configurable
}
public void setUseGmtMillisForDatetimes(boolean flag) {
// not runtime configurable
}
public void setUseHostsInPrivileges(boolean property) {
// not runtime configurable
}
public void setUseInformationSchema(boolean flag) {
// not runtime configurable
}
public void setUseJDBCCompliantTimezoneShift(boolean flag) {
// not runtime configurable
}
public void setUseJvmCharsetConverters(boolean flag) {
// not runtime configurable
}
public void setUseLegacyDatetimeCode(boolean flag) {
// not runtime configurable
}
public void setUseLocalSessionState(boolean flag) {
// not runtime configurable
}
public void setUseNanosForElapsedTime(boolean flag) {
// not runtime configurable
}
public void setUseOldAliasMetadataBehavior(boolean flag) {
// not runtime configurable
}
public void setUseOldUTF8Behavior(boolean flag) {
// not runtime configurable
}
public void setUseOnlyServerErrorMessages(boolean flag) {
// not runtime configurable
}
public void setUseReadAheadInput(boolean flag) {
// not runtime configurable
}
public void setUseSSL(boolean property) {
// not runtime configurable
}
public void setUseSSPSCompatibleTimezoneShift(boolean flag) {
// not runtime configurable
}
public void setUseServerPrepStmts(boolean flag) {
// not runtime configurable
}
public void setUseServerPreparedStmts(boolean flag) {
// not runtime configurable
}
public void setUseSqlStateCodes(boolean flag) {
// not runtime configurable
}
public void setUseStreamLengthsInPrepStmts(boolean property) {
// not runtime configurable
}
public void setUseTimezone(boolean property) {
// not runtime configurable
}
public void setUseUltraDevWorkAround(boolean property) {
// not runtime configurable
}
public void setUseUnbufferedInput(boolean flag) {
// not runtime configurable
}
public void setUseUnicode(boolean flag) {
// not runtime configurable
}
public void setUseUsageAdvisor(boolean useUsageAdvisorFlag) {
// not runtime configurable
}
public void setUtf8OutsideBmpExcludedColumnNamePattern(String regexPattern) {
// not runtime configurable
}
public void setUtf8OutsideBmpIncludedColumnNamePattern(String regexPattern) {
// not runtime configurable
}
public void setVerifyServerCertificate(boolean flag) {
// not runtime configurable
}
public void setYearIsDateType(boolean flag) {
// not runtime configurable
}
public void setZeroDateTimeBehavior(String behavior) {
// not runtime configurable
}
public boolean useUnbufferedInput() {
return getCurrentConnection().useUnbufferedInput();
}
public boolean isSameResource(Connection c) {
return getCurrentConnection().isSameResource(c);
}
public void setInGlobalTx(boolean flag) {
getCurrentConnection().setInGlobalTx(flag);
}
public boolean getUseColumnNamesInFindColumn() {
return getCurrentConnection().getUseColumnNamesInFindColumn();
}
public void setUseColumnNamesInFindColumn(boolean flag) {
// not runtime configurable
}
public boolean getUseLocalTransactionState() {
return getCurrentConnection().getUseLocalTransactionState();
}
public void setUseLocalTransactionState(boolean flag) {
// not runtime configurable
}
public boolean getCompensateOnDuplicateKeyUpdateCounts() {
return getCurrentConnection().getCompensateOnDuplicateKeyUpdateCounts();
}
public void setCompensateOnDuplicateKeyUpdateCounts(boolean flag) {
// not runtime configurable
}
public boolean getUseAffectedRows() {
return getCurrentConnection().getUseAffectedRows();
}
public void setUseAffectedRows(boolean flag) {
// not runtime configurable
}
public String getPasswordCharacterEncoding() {
return getCurrentConnection().getPasswordCharacterEncoding();
}
public void setPasswordCharacterEncoding(String characterSet) {
getCurrentConnection().setPasswordCharacterEncoding(characterSet);
}
public int getAutoIncrementIncrement() {
return getCurrentConnection().getAutoIncrementIncrement();
}
public int getLoadBalanceBlacklistTimeout() {
return getCurrentConnection().getLoadBalanceBlacklistTimeout();
}
public void setLoadBalanceBlacklistTimeout(int loadBalanceBlacklistTimeout) throws SQLException {
getCurrentConnection().setLoadBalanceBlacklistTimeout(loadBalanceBlacklistTimeout);
}
public int getLoadBalancePingTimeout() {
return getCurrentConnection().getLoadBalancePingTimeout();
}
public void setLoadBalancePingTimeout(int loadBalancePingTimeout) throws SQLException {
getCurrentConnection().setLoadBalancePingTimeout(loadBalancePingTimeout);
}
public boolean getLoadBalanceValidateConnectionOnSwapServer() {
return getCurrentConnection().getLoadBalanceValidateConnectionOnSwapServer();
}
public void setLoadBalanceValidateConnectionOnSwapServer(boolean loadBalanceValidateConnectionOnSwapServer) {
getCurrentConnection().setLoadBalanceValidateConnectionOnSwapServer(loadBalanceValidateConnectionOnSwapServer);
}
public int getRetriesAllDown() {
return getCurrentConnection().getRetriesAllDown();
}
public void setRetriesAllDown(int retriesAllDown) throws SQLException {
getCurrentConnection().setRetriesAllDown(retriesAllDown);
}
public ExceptionInterceptor getExceptionInterceptor() {
return getCurrentConnection().getExceptionInterceptor();
}
public String getExceptionInterceptors() {
return getCurrentConnection().getExceptionInterceptors();
}
public void setExceptionInterceptors(String exceptionInterceptors) {
getCurrentConnection().setExceptionInterceptors(exceptionInterceptors);
}
public boolean getQueryTimeoutKillsConnection() {
return getCurrentConnection().getQueryTimeoutKillsConnection();
}
public void setQueryTimeoutKillsConnection(boolean queryTimeoutKillsConnection) {
getCurrentConnection().setQueryTimeoutKillsConnection(queryTimeoutKillsConnection);
}
public boolean hasSameProperties(Connection c) {
return this.masterConnection.hasSameProperties(c) && this.slavesConnection.hasSameProperties(c);
}
public Properties getProperties() {
Properties props = new Properties();
props.putAll(this.masterConnection.getProperties());
props.putAll(this.slavesConnection.getProperties());
return props;
}
public String getHost() {
return getCurrentConnection().getHost();
}
public void setProxy(MySQLConnection proxy) {
getCurrentConnection().setProxy(proxy);
}
public boolean getRetainStatementAfterResultSetClose() {
return getCurrentConnection().getRetainStatementAfterResultSetClose();
}
public int getMaxAllowedPacket() {
return getCurrentConnection().getMaxAllowedPacket();
}
public String getLoadBalanceConnectionGroup() {
return getCurrentConnection().getLoadBalanceConnectionGroup();
}
public boolean getLoadBalanceEnableJMX() {
return getCurrentConnection().getLoadBalanceEnableJMX();
}
public String getLoadBalanceExceptionChecker() {
return this.currentConnection.getLoadBalanceExceptionChecker();
}
public String getLoadBalanceSQLExceptionSubclassFailover() {
return this.currentConnection.getLoadBalanceSQLExceptionSubclassFailover();
}
public String getLoadBalanceSQLStateFailover() {
return this.currentConnection.getLoadBalanceSQLStateFailover();
}
public void setLoadBalanceConnectionGroup(String loadBalanceConnectionGroup) {
this.currentConnection.setLoadBalanceConnectionGroup(loadBalanceConnectionGroup);
}
public void setLoadBalanceEnableJMX(boolean loadBalanceEnableJMX) {
this.currentConnection.setLoadBalanceEnableJMX(loadBalanceEnableJMX);
}
public void setLoadBalanceExceptionChecker(String loadBalanceExceptionChecker) {
this.currentConnection.setLoadBalanceExceptionChecker(loadBalanceExceptionChecker);
}
public void setLoadBalanceSQLExceptionSubclassFailover(String loadBalanceSQLExceptionSubclassFailover) {
this.currentConnection.setLoadBalanceSQLExceptionSubclassFailover(loadBalanceSQLExceptionSubclassFailover);
}
public void setLoadBalanceSQLStateFailover(String loadBalanceSQLStateFailover) {
this.currentConnection.setLoadBalanceSQLStateFailover(loadBalanceSQLStateFailover);
}
public String getLoadBalanceAutoCommitStatementRegex() {
return getCurrentConnection().getLoadBalanceAutoCommitStatementRegex();
}
public int getLoadBalanceAutoCommitStatementThreshold() {
return getCurrentConnection().getLoadBalanceAutoCommitStatementThreshold();
}
public void setLoadBalanceAutoCommitStatementRegex(String loadBalanceAutoCommitStatementRegex) {
getCurrentConnection().setLoadBalanceAutoCommitStatementRegex(loadBalanceAutoCommitStatementRegex);
}
public void setLoadBalanceAutoCommitStatementThreshold(int loadBalanceAutoCommitStatementThreshold) throws SQLException {
getCurrentConnection().setLoadBalanceAutoCommitStatementThreshold(loadBalanceAutoCommitStatementThreshold);
}
public void setTypeMap(Map> map) throws SQLException {
}
public boolean getIncludeThreadDumpInDeadlockExceptions() {
return getCurrentConnection().getIncludeThreadDumpInDeadlockExceptions();
}
public void setIncludeThreadDumpInDeadlockExceptions(boolean flag) {
getCurrentConnection().setIncludeThreadDumpInDeadlockExceptions(flag);
}
public boolean getIncludeThreadNamesAsStatementComment() {
return getCurrentConnection().getIncludeThreadNamesAsStatementComment();
}
public void setIncludeThreadNamesAsStatementComment(boolean flag) {
getCurrentConnection().setIncludeThreadNamesAsStatementComment(flag);
}
public boolean isServerLocal() throws SQLException {
return getCurrentConnection().isServerLocal();
}
public void setAuthenticationPlugins(String authenticationPlugins) {
getCurrentConnection().setAuthenticationPlugins(authenticationPlugins);
}
public String getAuthenticationPlugins() {
return getCurrentConnection().getAuthenticationPlugins();
}
public void setDisabledAuthenticationPlugins(String disabledAuthenticationPlugins) {
getCurrentConnection().setDisabledAuthenticationPlugins(disabledAuthenticationPlugins);
}
public String getDisabledAuthenticationPlugins() {
return getCurrentConnection().getDisabledAuthenticationPlugins();
}
public void setDefaultAuthenticationPlugin(String defaultAuthenticationPlugin) {
getCurrentConnection().setDefaultAuthenticationPlugin(defaultAuthenticationPlugin);
}
public String getDefaultAuthenticationPlugin() {
return getCurrentConnection().getDefaultAuthenticationPlugin();
}
public void setParseInfoCacheFactory(String factoryClassname) {
getCurrentConnection().setParseInfoCacheFactory(factoryClassname);
}
public String getParseInfoCacheFactory() {
return getCurrentConnection().getParseInfoCacheFactory();
}
public void setSchema(String schema) throws SQLException {
getCurrentConnection().setSchema(schema);
}
public String getSchema() throws SQLException {
return getCurrentConnection().getSchema();
}
public void abort(Executor executor) throws SQLException {
getCurrentConnection().abort(executor);
if (this.connectionGroup != null) {
this.connectionGroup.handleCloseConnection(this);
}
}
public void setNetworkTimeout(Executor executor, int milliseconds) throws SQLException {
getCurrentConnection().setNetworkTimeout(executor, milliseconds);
}
public int getNetworkTimeout() throws SQLException {
return getCurrentConnection().getNetworkTimeout();
}
public void setServerConfigCacheFactory(String factoryClassname) {
getCurrentConnection().setServerConfigCacheFactory(factoryClassname);
}
public String getServerConfigCacheFactory() {
return getCurrentConnection().getServerConfigCacheFactory();
}
public void setDisconnectOnExpiredPasswords(boolean disconnectOnExpiredPasswords) {
getCurrentConnection().setDisconnectOnExpiredPasswords(disconnectOnExpiredPasswords);
}
public boolean getDisconnectOnExpiredPasswords() {
return getCurrentConnection().getDisconnectOnExpiredPasswords();
}
public void setGetProceduresReturnsFunctions(boolean getProcedureReturnsFunctions) {
getCurrentConnection().setGetProceduresReturnsFunctions(getProcedureReturnsFunctions);
}
public boolean getGetProceduresReturnsFunctions() {
return getCurrentConnection().getGetProceduresReturnsFunctions();
}
public void abortInternal() throws SQLException {
getCurrentConnection().abortInternal();
if (this.connectionGroup != null) {
this.connectionGroup.handleCloseConnection(this);
}
}
public void checkClosed() throws SQLException {
getCurrentConnection().checkClosed();
}
public Object getConnectionMutex() {
return getCurrentConnection().getConnectionMutex();
}
public boolean getAllowMasterDownConnections() {
return this.allowMasterDownConnections;
}
public void setAllowMasterDownConnections(boolean connectIfMasterDown) {
this.allowMasterDownConnections = connectIfMasterDown;
}
public boolean getReplicationEnableJMX() {
return this.enableJMX;
}
public void setReplicationEnableJMX(boolean replicationEnableJMX) {
this.enableJMX = replicationEnableJMX;
}
public String getConnectionAttributes() throws SQLException {
return getCurrentConnection().getConnectionAttributes();
}
public void setDetectCustomCollations(boolean detectCustomCollations) {
getCurrentConnection().setDetectCustomCollations(detectCustomCollations);
}
public boolean getDetectCustomCollations() {
return getCurrentConnection().getDetectCustomCollations();
}
public int getSessionMaxRows() {
return getCurrentConnection().getSessionMaxRows();
}
public void setSessionMaxRows(int max) throws SQLException {
getCurrentConnection().setSessionMaxRows(max);
}
public String getServerRSAPublicKeyFile() {
return getCurrentConnection().getServerRSAPublicKeyFile();
}
public void setServerRSAPublicKeyFile(String serverRSAPublicKeyFile) throws SQLException {
getCurrentConnection().setServerRSAPublicKeyFile(serverRSAPublicKeyFile);
}
public boolean getAllowPublicKeyRetrieval() {
return getCurrentConnection().getAllowPublicKeyRetrieval();
}
public void setAllowPublicKeyRetrieval(boolean allowPublicKeyRetrieval) throws SQLException {
getCurrentConnection().setAllowPublicKeyRetrieval(allowPublicKeyRetrieval);
}
public void setDontCheckOnDuplicateKeyUpdateInSQL(boolean dontCheckOnDuplicateKeyUpdateInSQL) {
getCurrentConnection().setDontCheckOnDuplicateKeyUpdateInSQL(dontCheckOnDuplicateKeyUpdateInSQL);
}
public boolean getDontCheckOnDuplicateKeyUpdateInSQL() {
return getCurrentConnection().getDontCheckOnDuplicateKeyUpdateInSQL();
}
}
© 2015 - 2025 Weber Informatics LLC | Privacy Policy