org.mariadb.jdbc.internal.failover.impl
Class AuroraListener

java.lang.Object
  extended by org.mariadb.jdbc.internal.failover.AbstractMastersListener
      extended by org.mariadb.jdbc.internal.failover.AbstractMastersSlavesListener
          extended by org.mariadb.jdbc.internal.failover.impl.MastersSlavesListener
              extended by org.mariadb.jdbc.internal.failover.impl.AuroraListener
All Implemented Interfaces:
Listener

public class AuroraListener
extends MastersSlavesListener


Field Summary
 
Fields inherited from class org.mariadb.jdbc.internal.failover.impl.MastersSlavesListener
masterProtocol, secondaryProtocol
 
Fields inherited from class org.mariadb.jdbc.internal.failover.AbstractMastersSlavesListener
waitNewMasterProtocol, waitNewSecondaryProtocol
 
Fields inherited from class org.mariadb.jdbc.internal.failover.AbstractMastersListener
currentConnectionAttempts, currentProtocol, currentReadOnlyAsked, explicitClosed, lastQueryNanos, lastRetry, proxy, urlParser
 
Constructor Summary
AuroraListener(UrlParser urlParser)
          Constructor for Aurora.
 
Method Summary
 boolean checkMasterStatus(SearchFilter searchFilter)
          Check master status.
 HostAddress getClusterHostAddress()
           
 void reconnectFailedConnection(SearchFilter searchFilter)
          Search a valid connection for failed one.
 void retrieveAllEndpointsAndSet(Protocol protocol)
          Retrieves the information necessary to add a new endpoint.
 HostAddress searchByStartName(Protocol secondaryProtocol, List<HostAddress> loopAddress)
          Looks for the current master/writer instance via the secondary protocol if it is found within 3 attempts.
 
Methods inherited from class org.mariadb.jdbc.internal.failover.impl.MastersSlavesListener
checkInitialConnection, checkWaitingConnection, connectedHosts, foundActiveMaster, foundActiveSecondary, handleFailLoop, initializeConnection, isMasterConnected, lockAndSwitchMaster, lockAndSwitchSecondary, preClose, preExecute, primaryFail, reconnect, removeListenerFromSchedulers, rePrepareOnSlave, secondaryFail, switchReadOnlyConnection
 
Methods inherited from class org.mariadb.jdbc.internal.failover.AbstractMastersSlavesListener
getFilterForFailedHost, getSecondaryHostFailNanos, handleFailover, hasHostFail, isMasterHostFailReconnect, isSecondaryHostFail, isSecondaryHostFailReconnect, resetMasterFailoverData, resetSecondaryFailoverData, setSecondaryHostFail
 
Methods inherited from class org.mariadb.jdbc.internal.failover.AbstractMastersListener
addToBlacklist, canRetryFailLoop, clearBlacklist, closeConnection, getBlacklistKeys, getCurrentProtocol, getLastQueryNanos, getMasterHostFailNanos, getProxy, getRetriesAllDown, getUrlParser, invoke, invoke, isAutoReconnect, isClosed, isExplicitClosed, isMasterHostFail, isQueryRelaunchable, isReadOnly, pingMasterProtocol, preAutoReconnect, relaunchOperation, removeFromBlacklist, resetOldsBlackListHosts, setMasterHostFail, setProxy, setSessionReadOnly, syncConnection, throwFailoverMessage
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

AuroraListener

public AuroraListener(UrlParser urlParser)
               throws SQLException
Constructor for Aurora. This differ from standard failover because : - we don't know current master, we must check that after initial connection - master can change after he has a failover

Parameters:
urlParser - connection informations
Throws:
SQLException - when connection string contain host with different cluster
Method Detail

getClusterHostAddress

public HostAddress getClusterHostAddress()

reconnectFailedConnection

public void reconnectFailedConnection(SearchFilter searchFilter)
                               throws SQLException
Search a valid connection for failed one. A Node can be a master or a replica depending on the cluster state. so search for each host until found all the failed connection. By default, search for the host not down, and recheck the down one after if not found valid connections.

Specified by:
reconnectFailedConnection in interface Listener
Overrides:
reconnectFailedConnection in class MastersSlavesListener
Throws:
SQLException - if a connection asked is not found

retrieveAllEndpointsAndSet

public void retrieveAllEndpointsAndSet(Protocol protocol)
                                throws SQLException
Retrieves the information necessary to add a new endpoint. Calls the methods that retrieves the instance identifiers and sets urlParser accordingly.

Parameters:
protocol - current protocol connected to
Throws:
SQLException - if connection error occur

searchByStartName

public HostAddress searchByStartName(Protocol secondaryProtocol,
                                     List<HostAddress> loopAddress)
Looks for the current master/writer instance via the secondary protocol if it is found within 3 attempts. Should it not be able to connect, the host is blacklisted and null is returned. Otherwise, it will open a new connection to the cluster endpoint and retrieve the data from there.

Parameters:
secondaryProtocol - the current secondary protocol
loopAddress - list of possible hosts
Returns:
the probable master address or null if not found

checkMasterStatus

public boolean checkMasterStatus(SearchFilter searchFilter)
Description copied from class: MastersSlavesListener
Check master status.

Specified by:
checkMasterStatus in interface Listener
Overrides:
checkMasterStatus in class MastersSlavesListener
Parameters:
searchFilter - search filter
Returns:
has some status changed


Copyright © 2017. All rights reserved.