Class MastersSlavesProtocol
java.lang.Object
org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol
org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol
org.mariadb.jdbc.internal.protocol.MasterProtocol
org.mariadb.jdbc.internal.protocol.MastersSlavesProtocol
- All Implemented Interfaces:
Closeable,AutoCloseable,Protocol
- Direct Known Subclasses:
AuroraProtocol
-
Field Summary
FieldsModifier and TypeFieldDescriptionprotected booleanprivate booleanFields inherited from class org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol
readSchedulerFields inherited from class org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol
activeStreamingResult, autoIncrementIncrement, connected, database, eofDeprecated, explicitClosed, hasWarnings, lock, options, proxy, reader, readOnly, serverCapabilities, serverPrepareStatementCache, serverStatus, serverThreadId, socket, socketTimeout, urlParser, writer -
Constructor Summary
ConstructorsConstructorDescriptionMastersSlavesProtocol(UrlParser url, GlobalStateInfo globalInfo, ReentrantLock lock) -
Method Summary
Modifier and TypeMethodDescriptionprotected static booleanfoundMaster(MastersSlavesListener listener, MastersSlavesProtocol protocol, SearchFilter searchFilter) protected static booleanfoundSecondary(MastersSlavesListener listener, MastersSlavesProtocol protocol, SearchFilter searchFilter) private static MastersSlavesProtocolgetNewProtocol(FailoverProxy proxy, GlobalStateInfo globalInfo, UrlParser urlParser) Get new instance of MastersSlavesProtocol.static voidloop(MastersSlavesListener listener, GlobalStateInfo globalInfo, List<HostAddress> addresses, SearchFilter searchFilter) loop until found the failed connection.booleanprivate static voidresetHostList(MastersSlavesListener listener, Deque<HostAddress> loopAddresses) Reinitialize loopAddresses with all servers in randomize order.voidsetMustBeMasterConnection(boolean mustBeMasterConnection) Methods inherited from class org.mariadb.jdbc.internal.protocol.MasterProtocol
loopMethods inherited from class org.mariadb.jdbc.internal.protocol.AbstractQueryProtocol
addPrepareInCache, cancelCurrentQuery, closeExplicit, executeBatchClient, executeBatchServer, executeBatchStmt, executePreparedQuery, executeQuery, executeQuery, executeQuery, executeQuery, executeQuery, forceReleasePrepareStatement, forceReleaseWaitingPrepareStatement, getAutocommit, getAutoIncrementIncrement, getCatalog, getMaxRows, getResult, getTimeout, getTransactionIsolationLevel, handleIoException, interrupt, inTransaction, isInterrupted, isValid, ping, prepare, prolog, prologProxy, releasePrepareStatement, reset, resetDatabase, resetStateAfterFailover, rollback, setActiveFutureTask, setCatalog, setLocalInfileInputStream, setMaxRows, setTimeout, setTransactionIsolation, stopIfInterruptedMethods inherited from class org.mariadb.jdbc.internal.protocol.AbstractConnectProtocol
abort, changeSocketSoTimeout, changeSocketTcpNoDelay, checkIfMaster, close, connect, connectWithoutProxy, getActiveStreamingResult, getDatabase, getHost, getHostAddress, getLock, getMajorServerVersion, getMinorServerVersion, getOptions, getPinGlobalTxToPhysicalConnection, getPort, getProxy, getReader, getReadonly, getServerThreadId, getServerVersion, getSocket, getTimeZone, getTraces, getUrlParser, getUsername, getWriter, hasMoreResults, hasWarnings, isClosed, isConnected, isEofDeprecated, isExplicitClosed, isMasterConnection, isServerMariaDb, noBackslashEscapes, prepareStatementCache, readEofPacket, readPipelineCheckMaster, removeActiveStreamingResult, removeHasMoreResults, sessionStateAware, setActiveStreamingResult, setHasWarnings, setHostAddress, setHostFailedWithoutProxy, setProxy, setReadonly, setServerStatus, shouldReconnectWithoutProxy, skip, skipEofPacket, versionGreaterOrEqualMethods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, waitMethods inherited from interface org.mariadb.jdbc.internal.protocol.Protocol
abort, changeSocketSoTimeout, changeSocketTcpNoDelay, checkIfMaster, close, connect, connectWithoutProxy, getActiveStreamingResult, getDatabase, getHost, getHostAddress, getLock, getMajorServerVersion, getMinorServerVersion, getOptions, getPinGlobalTxToPhysicalConnection, getPort, getProxy, getReader, getReadonly, getServerThreadId, getServerVersion, getSocket, getTimeZone, getTraces, getUrlParser, getUsername, getWriter, hasMoreResults, hasWarnings, isClosed, isConnected, isEofDeprecated, isExplicitClosed, isMasterConnection, isServerMariaDb, noBackslashEscapes, prepareStatementCache, readEofPacket, removeActiveStreamingResult, removeHasMoreResults, sessionStateAware, setActiveStreamingResult, setHasWarnings, setHostAddress, setHostFailedWithoutProxy, setProxy, setReadonly, setServerStatus, shouldReconnectWithoutProxy, skip, skipEofPacket, versionGreaterOrEqual
-
Field Details
-
masterConnection
protected boolean masterConnection -
mustBeMasterConnection
private boolean mustBeMasterConnection
-
-
Constructor Details
-
MastersSlavesProtocol
-
-
Method Details
-
loop
public static void loop(MastersSlavesListener listener, GlobalStateInfo globalInfo, List<HostAddress> addresses, SearchFilter searchFilter) throws SQLException loop until found the failed connection.- Parameters:
listener- current failoverglobalInfo- server global variables informationaddresses- list of HostAddress to loopsearchFilter- search parameter- Throws:
SQLException- if not found
-
resetHostList
Reinitialize loopAddresses with all servers in randomize order.- Parameters:
listener- current listenerloopAddresses- the list to reinitialize
-
foundMaster
protected static boolean foundMaster(MastersSlavesListener listener, MastersSlavesProtocol protocol, SearchFilter searchFilter) -
foundSecondary
protected static boolean foundSecondary(MastersSlavesListener listener, MastersSlavesProtocol protocol, SearchFilter searchFilter) throws SQLException - Throws:
SQLException
-
getNewProtocol
private static MastersSlavesProtocol getNewProtocol(FailoverProxy proxy, GlobalStateInfo globalInfo, UrlParser urlParser) Get new instance of MastersSlavesProtocol.- Parameters:
proxy- proxyurlParser- connection string Object.- Returns:
- a new MastersSlavesProtocol instance
-
mustBeMasterConnection
public boolean mustBeMasterConnection()- Specified by:
mustBeMasterConnectionin interfaceProtocol- Overrides:
mustBeMasterConnectionin classAbstractConnectProtocol
-
setMustBeMasterConnection
public void setMustBeMasterConnection(boolean mustBeMasterConnection)
-