public class ReplicationConnectionProxy extends MultiHostConnectionProxy implements PingTarget
| Modifier and Type | Field and Description |
|---|---|
protected boolean |
allowMasterDownConnections |
protected boolean |
allowSlaveDownConnections |
protected boolean |
enableJMX |
protected LoadBalancedConnection |
masterConnection |
protected boolean |
readFromMasterWhenNoSlaves |
protected boolean |
readFromMasterWhenNoSlavesOriginal |
protected boolean |
readOnly |
protected LoadBalancedConnection |
slavesConnection |
autoReconnect, closedExplicitly, closedReason, connectionUrl, currentConnection, hostsList, isClosed, lastExceptionDealtWith, thisAsConnection| Modifier and Type | Method and Description |
|---|---|
void |
addSlaveHost(java.lang.String hostPortPair) |
static ReplicationConnection |
createProxyInstance(ConnectionUrl connectionUrl)
Static factory to create
ReplicationConnection instances. |
protected void |
doAbort(java.util.concurrent.Executor executor)
Executes a abort() invocation;
|
protected void |
doAbortInternal()
Executes a abortInternal() invocation;
|
protected void |
doClose()
Executes a close() invocation;
|
void |
doPing()
Pings both l/b connections.
|
long |
getConnectionGroupId() |
JdbcConnection |
getCurrentConnection() |
JdbcConnection |
getMasterConnection() |
JdbcConnection |
getSlavesConnection() |
protected 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 hostPortPair) |
boolean |
isHostSlave(java.lang.String hostPortPair) |
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.
|
protected void |
pickNewConnection()
Picks the "best" connection to use from now on.
|
void |
promoteSlaveToMaster(java.lang.String hostPortPair) |
protected void |
propagateProxyDown(JdbcConnection proxyConn)
Propagates the connection proxy down through all live connections.
|
void |
removeMasterHost(java.lang.String hostPortPair) |
void |
removeMasterHost(java.lang.String hostPortPair,
boolean waitUntilNotInUse) |
void |
removeMasterHost(java.lang.String hostPortPair,
boolean waitUntilNotInUse,
boolean isNowSlave) |
void |
removeSlave(java.lang.String hostPortPair) |
void |
removeSlave(java.lang.String hostPortPair,
boolean closeGently) |
void |
setReadOnly(boolean readOnly) |
protected boolean |
shouldExceptionTriggerConnectionSwitch(java.lang.Throwable t)
Has no use in replication connections.
|
protected void |
syncSessionState(JdbcConnection source,
JdbcConnection target,
boolean readonly)
Synchronizes session state between two connections, allowing to override the read-only status.
|
allowedOnClosedConnection, createConnectionForHost, dealWithInvocationException, getNewJdbcInterfaceProxy, getParentProxy, getProxy, invalidateConnection, invalidateCurrentConnection, invoke, proxyIfReturnTypeIsJdbcInterface, setProxyprotected boolean enableJMX
protected boolean allowMasterDownConnections
protected boolean allowSlaveDownConnections
protected boolean readFromMasterWhenNoSlaves
protected boolean readFromMasterWhenNoSlavesOriginal
protected boolean readOnly
protected LoadBalancedConnection masterConnection
protected LoadBalancedConnection slavesConnection
public static ReplicationConnection createProxyInstance(ConnectionUrl connectionUrl) throws java.sql.SQLException
ReplicationConnection instances.connectionUrl - The connection URL containing the hosts in a replication setup.ReplicationConnection proxy.java.sql.SQLException - if an error occursprotected void propagateProxyDown(JdbcConnection proxyConn)
propagateProxyDown in class MultiHostConnectionProxyproxyConn - The top level connection in the multi-host connections chain.protected boolean shouldExceptionTriggerConnectionSwitch(java.lang.Throwable t)
false.shouldExceptionTriggerConnectionSwitch in class MultiHostConnectionProxyt - The Exception instance to check.public boolean isMasterConnection()
isMasterConnection in class MultiHostConnectionProxypublic boolean isSlavesConnection()
protected void pickNewConnection()
throws java.sql.SQLException
MultiHostConnectionProxypickNewConnection in class MultiHostConnectionProxyjava.sql.SQLException - if an error occursprotected void syncSessionState(JdbcConnection source, JdbcConnection target, boolean readonly) throws java.sql.SQLException
MultiHostConnectionProxysyncSessionState in class MultiHostConnectionProxysource - The connection where to get state from.target - The connection where to set state.readonly - The new read-only status.java.sql.SQLException - if an error occursprotected void doClose()
throws java.sql.SQLException
MultiHostConnectionProxydoClose in class MultiHostConnectionProxyjava.sql.SQLException - if an error occursprotected void doAbortInternal()
throws java.sql.SQLException
MultiHostConnectionProxydoAbortInternal in class MultiHostConnectionProxyjava.sql.SQLException - if an error occursprotected void doAbort(java.util.concurrent.Executor executor)
throws java.sql.SQLException
MultiHostConnectionProxydoAbort in class MultiHostConnectionProxyexecutor - executorjava.sql.SQLException - if an error occursprotected java.lang.Object invokeMore(java.lang.Object proxy,
java.lang.reflect.Method method,
java.lang.Object[] args)
throws java.lang.Throwable
invokeMore in class MultiHostConnectionProxyproxy - proxy objectmethod - method to invokeargs - method parametersjava.lang.Throwable - if an error occurspublic void doPing()
throws java.sql.SQLException
doPing in interface PingTargetjava.sql.SQLExceptionpublic JdbcConnection getCurrentConnection()
public long getConnectionGroupId()
public JdbcConnection getMasterConnection()
public void promoteSlaveToMaster(java.lang.String hostPortPair)
throws java.sql.SQLException
java.sql.SQLExceptionpublic void removeMasterHost(java.lang.String hostPortPair)
throws java.sql.SQLException
java.sql.SQLExceptionpublic void removeMasterHost(java.lang.String hostPortPair,
boolean waitUntilNotInUse)
throws java.sql.SQLException
java.sql.SQLExceptionpublic void removeMasterHost(java.lang.String hostPortPair,
boolean waitUntilNotInUse,
boolean isNowSlave)
throws java.sql.SQLException
java.sql.SQLExceptionpublic boolean isHostMaster(java.lang.String hostPortPair)
public JdbcConnection getSlavesConnection()
public void addSlaveHost(java.lang.String hostPortPair)
throws java.sql.SQLException
java.sql.SQLExceptionpublic void removeSlave(java.lang.String hostPortPair)
throws java.sql.SQLException
java.sql.SQLExceptionpublic void removeSlave(java.lang.String hostPortPair,
boolean closeGently)
throws java.sql.SQLException
java.sql.SQLExceptionpublic boolean isHostSlave(java.lang.String hostPortPair)
public void setReadOnly(boolean readOnly)
throws java.sql.SQLException
java.sql.SQLExceptionpublic boolean isReadOnly()
throws java.sql.SQLException
java.sql.SQLException