public class ReplicationConnectionProxy extends MultiHostConnectionProxy implements PingTarget
MultiHostConnectionProxy.JdbcInterfaceProxy| Modifier and Type | Field and Description |
|---|---|
protected boolean |
allowMasterDownConnections |
protected boolean |
allowSlaveDownConnections |
(package private) ReplicationConnectionGroup |
connectionGroup |
protected boolean |
enableJMX |
protected LoadBalancedConnection |
masterConnection |
protected boolean |
readFromMasterWhenNoSlaves |
protected boolean |
readFromMasterWhenNoSlavesOriginal |
protected boolean |
readOnly |
protected LoadBalancedConnection |
slavesConnection |
autoReconnect, closedExplicitly, closedReason, currentConnection, hostList, isClosed, lastExceptionDealtWith, localProps, proxyConnection, thisAsConnection| Modifier and Type | Method and Description |
|---|---|
void |
addSlaveHost(java.lang.String host) |
static ReplicationConnection |
createProxyInstance(java.util.List<java.lang.String> masterHostList,
java.util.Properties masterProperties,
java.util.List<java.lang.String> slaveHostList,
java.util.Properties slaveProperties) |
(package private) void |
doAbort(java.util.concurrent.Executor executor)
Executes a abort() invocation;
|
(package private) void |
doAbortInternal()
Executes a abortInternal() invocation;
|
(package private) void |
doClose()
Executes a close() invocation;
|
void |
doPing()
Pings both l/b connections.
|
long |
getConnectionGroupId() |
Connection |
getCurrentConnection() |
Connection |
getMasterConnection() |
(package private) MySQLConnection |
getNewWrapperForThisAsConnection()
Wraps this object with a new replication Connection instance.
|
Connection |
getSlavesConnection() |
(package private) java.lang.Object |
invokeMore(java.lang.Object proxy,
java.lang.reflect.Method method,
java.lang.Object[] args)
Proxies method invocation on the java.sql.Connection interface.
|
boolean |
isHostMaster(java.lang.String host) |
boolean |
isHostSlave(java.lang.String host) |
boolean |
isMasterConnection()
Checks if current connection is the masters l/b connection.
|
boolean |
isReadOnly() |
boolean |
isSlavesConnection()
Checks if current connection is the slaves l/b connection.
|
(package private) void |
pickNewConnection()
Picks the "best" connection to use from now on.
|
void |
promoteSlaveToMaster(java.lang.String host) |
protected void |
propagateProxyDown(MySQLConnection proxyConn)
Propagates the connection proxy down through all live connections.
|
void |
removeMasterHost(java.lang.String host) |
void |
removeMasterHost(java.lang.String host,
boolean waitUntilNotInUse) |
void |
removeMasterHost(java.lang.String host,
boolean waitUntilNotInUse,
boolean isNowSlave) |
void |
removeSlave(java.lang.String host) |
void |
removeSlave(java.lang.String host,
boolean closeGently) |
void |
setReadOnly(boolean readOnly) |
(package private) boolean |
shouldExceptionTriggerConnectionSwitch(java.lang.Throwable t)
Has no use in replication connections.
|
allowedOnClosedConnection, createConnectionForHost, dealWithInvocationException, getNewJdbcInterfaceProxy, getProxy, initializeHostsSpecs, invalidateConnection, invalidateCurrentConnection, invoke, proxyIfReturnTypeIsJdbcInterface, setProxy, syncSessionState, syncSessionStateprotected boolean enableJMX
protected boolean allowMasterDownConnections
protected boolean allowSlaveDownConnections
protected boolean readFromMasterWhenNoSlaves
protected boolean readFromMasterWhenNoSlavesOriginal
protected boolean readOnly
ReplicationConnectionGroup connectionGroup
protected LoadBalancedConnection masterConnection
protected LoadBalancedConnection slavesConnection
public static ReplicationConnection createProxyInstance(java.util.List<java.lang.String> masterHostList, java.util.Properties masterProperties, java.util.List<java.lang.String> slaveHostList, java.util.Properties slaveProperties) throws java.sql.SQLException
java.sql.SQLExceptionMySQLConnection getNewWrapperForThisAsConnection() throws java.sql.SQLException
getNewWrapperForThisAsConnection in class MultiHostConnectionProxyjava.sql.SQLExceptionprotected void propagateProxyDown(MySQLConnection proxyConn)
propagateProxyDown in class MultiHostConnectionProxyproxyConn - The top level connection in the multi-host connections chain.boolean shouldExceptionTriggerConnectionSwitch(java.lang.Throwable t)
false.shouldExceptionTriggerConnectionSwitch in class MultiHostConnectionProxyex - The Exception instance to check.public boolean isMasterConnection()
isMasterConnection in class MultiHostConnectionProxypublic boolean isSlavesConnection()
void pickNewConnection()
throws java.sql.SQLException
MultiHostConnectionProxypickNewConnection in class MultiHostConnectionProxyjava.sql.SQLExceptionvoid doClose()
throws java.sql.SQLException
MultiHostConnectionProxydoClose in class MultiHostConnectionProxyjava.sql.SQLExceptionvoid doAbortInternal()
throws java.sql.SQLException
MultiHostConnectionProxydoAbortInternal in class MultiHostConnectionProxyjava.sql.SQLExceptionvoid doAbort(java.util.concurrent.Executor executor)
throws java.sql.SQLException
MultiHostConnectionProxydoAbort in class MultiHostConnectionProxyjava.sql.SQLExceptionjava.lang.Object invokeMore(java.lang.Object proxy,
java.lang.reflect.Method method,
java.lang.Object[] args)
throws java.lang.Throwable
invokeMore in class MultiHostConnectionProxyjava.lang.Throwablepublic void doPing()
throws java.sql.SQLException
doPing in interface PingTargetjava.sql.SQLExceptionpublic Connection getCurrentConnection()
public long getConnectionGroupId()
public Connection getMasterConnection()
public void promoteSlaveToMaster(java.lang.String host)
throws java.sql.SQLException
java.sql.SQLExceptionpublic void removeMasterHost(java.lang.String host)
throws java.sql.SQLException
java.sql.SQLExceptionpublic void removeMasterHost(java.lang.String host,
boolean waitUntilNotInUse)
throws java.sql.SQLException
java.sql.SQLExceptionpublic void removeMasterHost(java.lang.String host,
boolean waitUntilNotInUse,
boolean isNowSlave)
throws java.sql.SQLException
java.sql.SQLExceptionpublic boolean isHostMaster(java.lang.String host)
public Connection getSlavesConnection()
public void addSlaveHost(java.lang.String host)
throws java.sql.SQLException
java.sql.SQLExceptionpublic void removeSlave(java.lang.String host)
throws java.sql.SQLException
java.sql.SQLExceptionpublic void removeSlave(java.lang.String host,
boolean closeGently)
throws java.sql.SQLException
java.sql.SQLExceptionpublic boolean isHostSlave(java.lang.String host)
public void setReadOnly(boolean readOnly)
throws java.sql.SQLException
java.sql.SQLExceptionpublic boolean isReadOnly()
throws java.sql.SQLException
java.sql.SQLException