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, syncSessionState
protected 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.SQLException
MySQLConnection getNewWrapperForThisAsConnection() throws java.sql.SQLException
getNewWrapperForThisAsConnection
in class MultiHostConnectionProxy
java.sql.SQLException
protected void propagateProxyDown(MySQLConnection proxyConn)
propagateProxyDown
in class MultiHostConnectionProxy
proxyConn
- The top level connection in the multi-host connections chain.boolean shouldExceptionTriggerConnectionSwitch(java.lang.Throwable t)
false
.shouldExceptionTriggerConnectionSwitch
in class MultiHostConnectionProxy
ex
- The Exception instance to check.public boolean isMasterConnection()
isMasterConnection
in class MultiHostConnectionProxy
public boolean isSlavesConnection()
void pickNewConnection() throws java.sql.SQLException
MultiHostConnectionProxy
pickNewConnection
in class MultiHostConnectionProxy
java.sql.SQLException
void doClose() throws java.sql.SQLException
MultiHostConnectionProxy
doClose
in class MultiHostConnectionProxy
java.sql.SQLException
void doAbortInternal() throws java.sql.SQLException
MultiHostConnectionProxy
doAbortInternal
in class MultiHostConnectionProxy
java.sql.SQLException
void doAbort(java.util.concurrent.Executor executor) throws java.sql.SQLException
MultiHostConnectionProxy
doAbort
in class MultiHostConnectionProxy
java.sql.SQLException
java.lang.Object invokeMore(java.lang.Object proxy, java.lang.reflect.Method method, java.lang.Object[] args) throws java.lang.Throwable
invokeMore
in class MultiHostConnectionProxy
java.lang.Throwable
public void doPing() throws java.sql.SQLException
doPing
in interface PingTarget
java.sql.SQLException
public Connection getCurrentConnection()
public long getConnectionGroupId()
public Connection getMasterConnection()
public void promoteSlaveToMaster(java.lang.String host) throws java.sql.SQLException
java.sql.SQLException
public void removeMasterHost(java.lang.String host) throws java.sql.SQLException
java.sql.SQLException
public void removeMasterHost(java.lang.String host, boolean waitUntilNotInUse) throws java.sql.SQLException
java.sql.SQLException
public void removeMasterHost(java.lang.String host, boolean waitUntilNotInUse, boolean isNowSlave) throws java.sql.SQLException
java.sql.SQLException
public boolean isHostMaster(java.lang.String host)
public Connection getSlavesConnection()
public void addSlaveHost(java.lang.String host) throws java.sql.SQLException
java.sql.SQLException
public void removeSlave(java.lang.String host) throws java.sql.SQLException
java.sql.SQLException
public void removeSlave(java.lang.String host, boolean closeGently) throws java.sql.SQLException
java.sql.SQLException
public boolean isHostSlave(java.lang.String host)
public void setReadOnly(boolean readOnly) throws java.sql.SQLException
java.sql.SQLException
public boolean isReadOnly() throws java.sql.SQLException
java.sql.SQLException