Class AbstractMastersSlavesListener
- java.lang.Object
-
- org.mariadb.jdbc.internal.failover.AbstractMastersListener
-
- org.mariadb.jdbc.internal.failover.AbstractMastersSlavesListener
-
- All Implemented Interfaces:
Listener
- Direct Known Subclasses:
MastersSlavesListener
public abstract class AbstractMastersSlavesListener extends AbstractMastersListener
-
-
Field Summary
Fields Modifier and Type Field Description private static Logger
logger
private java.util.concurrent.atomic.AtomicBoolean
secondaryHostFail
private long
secondaryHostFailNanos
protected java.util.concurrent.atomic.AtomicReference<Protocol>
waitNewMasterProtocol
protected java.util.concurrent.atomic.AtomicReference<Protocol>
waitNewSecondaryProtocol
-
Fields inherited from class org.mariadb.jdbc.internal.failover.AbstractMastersListener
currentConnectionAttempts, currentProtocol, currentReadOnlyAsked, explicitClosed, globalInfo, lastQueryNanos, lastRetry, proxy, urlParser
-
-
Constructor Summary
Constructors Modifier Constructor Description protected
AbstractMastersSlavesListener(UrlParser urlParser, GlobalStateInfo globalInfo)
-
Method Summary
All Methods Instance Methods Abstract Methods Concrete Methods Modifier and Type Method Description abstract void
foundActiveSecondary(Protocol newSecondaryProtocol)
SearchFilter
getFilterForFailedHost()
long
getSecondaryHostFailNanos()
HandleErrorResult
handleFailover(java.sql.SQLException qe, java.lang.reflect.Method method, java.lang.Object[] args, Protocol protocol, boolean isClosed)
Handle failover on master or slave connection.boolean
hasHostFail()
boolean
isMasterHostFailReconnect()
boolean
isSecondaryHostFail()
boolean
isSecondaryHostFailReconnect()
protected void
resetMasterFailoverData()
protected void
resetSecondaryFailoverData()
abstract HandleErrorResult
secondaryFail(java.lang.reflect.Method method, java.lang.Object[] args, boolean killCmd)
boolean
setSecondaryHostFail()
Set slave connection lost variables.-
Methods inherited from class org.mariadb.jdbc.internal.failover.AbstractMastersListener
abortConnection, addToBlacklist, canRetryFailLoop, checkMasterStatus, clearBlacklist, closeConnection, getBlacklistKeys, getCatalog, getCurrentProtocol, getLastQueryNanos, getMajorServerVersion, getMasterHostFailNanos, getProxy, getRetriesAllDown, getTimeout, getUrlParser, handleFailLoop, initializeConnection, inTransaction, invoke, invoke, isAutoReconnect, isClosed, isExplicitClosed, isMasterConnection, isMasterHostFail, isQueryRelaunchable, isReadOnly, isServerMariaDb, isValid, noBackslashEscapes, pingMasterProtocol, preAutoReconnect, preClose, preExecute, primaryFail, prolog, reconnect, reconnectFailedConnection, relaunchOperation, removeFromBlacklist, removeListenerFromSchedulers, resetOldsBlackListHosts, sessionStateAware, setMasterHostFail, setProxy, setSessionReadOnly, switchReadOnlyConnection, syncConnection, throwFailoverMessage, versionGreaterOrEqual
-
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
-
Methods inherited from interface org.mariadb.jdbc.internal.failover.Listener
foundActiveMaster, getServerThreadId, isMasterConnected, preAbort, rePrepareOnSlave, reset
-
-
-
-
Field Detail
-
logger
private static final Logger logger
-
waitNewSecondaryProtocol
protected final java.util.concurrent.atomic.AtomicReference<Protocol> waitNewSecondaryProtocol
-
waitNewMasterProtocol
protected final java.util.concurrent.atomic.AtomicReference<Protocol> waitNewMasterProtocol
-
secondaryHostFail
private final java.util.concurrent.atomic.AtomicBoolean secondaryHostFail
-
secondaryHostFailNanos
private volatile long secondaryHostFailNanos
-
-
Constructor Detail
-
AbstractMastersSlavesListener
protected AbstractMastersSlavesListener(UrlParser urlParser, GlobalStateInfo globalInfo)
-
-
Method Detail
-
handleFailover
public HandleErrorResult handleFailover(java.sql.SQLException qe, java.lang.reflect.Method method, java.lang.Object[] args, Protocol protocol, boolean isClosed) throws java.sql.SQLException
Handle failover on master or slave connection.- Specified by:
handleFailover
in interfaceListener
- Overrides:
handleFailover
in classAbstractMastersListener
- Parameters:
method
- called methodargs
- methods parametersprotocol
- current protocol- Returns:
- HandleErrorResult object to indicate if query has finally been relaunched or exception if not.
- Throws:
java.sql.SQLException
- if primary fail reconnection fails
-
resetMasterFailoverData
protected void resetMasterFailoverData()
- Overrides:
resetMasterFailoverData
in classAbstractMastersListener
-
resetSecondaryFailoverData
protected void resetSecondaryFailoverData()
-
getSecondaryHostFailNanos
public long getSecondaryHostFailNanos()
-
setSecondaryHostFail
public boolean setSecondaryHostFail()
Set slave connection lost variables.- Returns:
- true if fail wasn't seen before
-
isSecondaryHostFail
public boolean isSecondaryHostFail()
-
isSecondaryHostFailReconnect
public boolean isSecondaryHostFailReconnect()
-
isMasterHostFailReconnect
public boolean isMasterHostFailReconnect()
-
hasHostFail
public boolean hasHostFail()
- Specified by:
hasHostFail
in interfaceListener
- Overrides:
hasHostFail
in classAbstractMastersListener
-
getFilterForFailedHost
public SearchFilter getFilterForFailedHost()
- Specified by:
getFilterForFailedHost
in interfaceListener
- Overrides:
getFilterForFailedHost
in classAbstractMastersListener
-
secondaryFail
public abstract HandleErrorResult secondaryFail(java.lang.reflect.Method method, java.lang.Object[] args, boolean killCmd) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
foundActiveSecondary
public abstract void foundActiveSecondary(Protocol newSecondaryProtocol) throws java.sql.SQLException
- Throws:
java.sql.SQLException
-
-