|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
java.lang.Objectorg.mariadb.jdbc.internal.failover.AbstractMastersListener
public abstract class AbstractMastersListener
| Field Summary | |
|---|---|
protected AtomicInteger |
currentConnectionAttempts
|
protected Protocol |
currentProtocol
|
protected boolean |
currentReadOnlyAsked
|
protected AtomicBoolean |
explicitClosed
|
protected long |
lastQueryNanos
|
protected long |
lastRetry
|
protected FailoverProxy |
proxy
|
UrlParser |
urlParser
|
| Constructor Summary | |
|---|---|
protected |
AbstractMastersListener(UrlParser urlParser)
|
| Method Summary | |
|---|---|
void |
addToBlacklist(HostAddress hostAddress)
After a failover, put the hostAddress in a static list so the other connection will not take this host in account for a time. |
boolean |
canRetryFailLoop()
|
abstract boolean |
checkMasterStatus(SearchFilter searchFilter)
|
static void |
clearBlacklist()
Clear blacklist data. |
void |
closeConnection(Protocol protocol)
Utility to close existing connection. |
Set<HostAddress> |
getBlacklistKeys()
|
Protocol |
getCurrentProtocol()
|
SearchFilter |
getFilterForFailedHost()
|
long |
getLastQueryNanos()
|
long |
getMasterHostFailNanos()
|
FailoverProxy |
getProxy()
|
int |
getRetriesAllDown()
|
UrlParser |
getUrlParser()
|
abstract void |
handleFailLoop()
|
HandleErrorResult |
handleFailover(SQLException qe,
Method method,
Object[] args,
Protocol protocol)
Call when a failover is detected on master connection. |
boolean |
hasHostFail()
|
void |
initializeConnection()
Initialize Listener. |
Object |
invoke(Method method,
Object[] args)
|
Object |
invoke(Method method,
Object[] args,
Protocol specificProtocol)
|
boolean |
isAutoReconnect()
|
boolean |
isClosed()
|
boolean |
isExplicitClosed()
|
boolean |
isMasterHostFail()
|
boolean |
isQueryRelaunchable(Method method,
Object[] args)
Check if query can be re-executed. |
boolean |
isReadOnly()
|
protected boolean |
pingMasterProtocol(Protocol protocol)
|
protected void |
preAutoReconnect()
|
abstract void |
preClose()
|
abstract void |
preExecute()
|
abstract HandleErrorResult |
primaryFail(Method method,
Object[] args)
|
abstract void |
reconnect()
|
abstract void |
reconnectFailedConnection(SearchFilter filter)
|
HandleErrorResult |
relaunchOperation(Method method,
Object[] args)
After a failover that has bean done, relaunch the operation that was in progress. |
void |
removeFromBlacklist(HostAddress hostAddress)
After a successfull connection, permit to remove a hostAddress from blacklist. |
protected void |
removeListenerFromSchedulers()
|
protected void |
resetMasterFailoverData()
|
void |
resetOldsBlackListHosts()
Permit to remove Host to blacklist after loadBalanceBlacklistTimeout seconds. |
boolean |
setMasterHostFail()
Set master fail variables. |
void |
setProxy(FailoverProxy proxy)
|
protected void |
setSessionReadOnly(boolean readOnly,
Protocol protocol)
|
abstract void |
switchReadOnlyConnection(Boolean readonly)
|
void |
syncConnection(Protocol from,
Protocol to)
When switching between 2 connections, report existing connection parameter to the new used connection. |
void |
throwFailoverMessage(HostAddress failHostAddress,
boolean wasMaster,
SQLException queryException,
boolean reconnected)
Throw a human readable message after a failoverException. |
| 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, isMasterConnected, rePrepareOnSlave |
| Field Detail |
|---|
public final UrlParser urlParser
protected AtomicInteger currentConnectionAttempts
protected volatile boolean currentReadOnlyAsked
protected Protocol currentProtocol
protected FailoverProxy proxy
protected long lastRetry
protected AtomicBoolean explicitClosed
protected long lastQueryNanos
| Constructor Detail |
|---|
protected AbstractMastersListener(UrlParser urlParser)
| Method Detail |
|---|
public static void clearBlacklist()
public void initializeConnection()
throws SQLException
initializeConnection in interface ListenerSQLException - if any exception occur.protected void removeListenerFromSchedulers()
protected void preAutoReconnect()
throws SQLException
SQLExceptionpublic FailoverProxy getProxy()
getProxy in interface Listenerpublic void setProxy(FailoverProxy proxy)
setProxy in interface Listenerpublic Set<HostAddress> getBlacklistKeys()
getBlacklistKeys in interface Listener
public HandleErrorResult handleFailover(SQLException qe,
Method method,
Object[] args,
Protocol protocol)
throws Throwable
handleFailover in interface Listenermethod - called methodargs - methods parametersprotocol - current protocol
Throwable - when method and parameters does not exist.public void addToBlacklist(HostAddress hostAddress)
addToBlacklist in interface ListenerhostAddress - the HostAddress to add to blacklistpublic void removeFromBlacklist(HostAddress hostAddress)
removeFromBlacklist in interface ListenerhostAddress - the host address tho be remove of blacklistpublic void resetOldsBlackListHosts()
protected void resetMasterFailoverData()
protected void setSessionReadOnly(boolean readOnly,
Protocol protocol)
throws SQLException
SQLExceptionpublic abstract void handleFailLoop()
public Protocol getCurrentProtocol()
getCurrentProtocol in interface Listenerpublic long getMasterHostFailNanos()
public boolean setMasterHostFail()
setMasterHostFail in interface Listenerpublic boolean isMasterHostFail()
isMasterHostFail in interface Listenerpublic boolean hasHostFail()
hasHostFail in interface Listenerpublic SearchFilter getFilterForFailedHost()
getFilterForFailedHost in interface Listener
public HandleErrorResult relaunchOperation(Method method,
Object[] args)
throws IllegalAccessException,
InvocationTargetException
method - the methode accessedargs - the parameters
IllegalAccessException - if the initial call is not permit
InvocationTargetException - if there is any error relaunching initial method
public boolean isQueryRelaunchable(Method method,
Object[] args)
method - invoke methodargs - invoke arguments
public Object invoke(Method method,
Object[] args,
Protocol specificProtocol)
throws Throwable
invoke in interface ListenerThrowable
public Object invoke(Method method,
Object[] args)
throws Throwable
invoke in interface ListenerThrowable
public void syncConnection(Protocol from,
Protocol to)
throws SQLException
syncConnection in interface Listenerfrom - used connectionto - will-be-current connection
SQLException - if catalog cannot be setpublic boolean isClosed()
isClosed in interface Listenerpublic boolean isReadOnly()
isReadOnly in interface Listenerpublic boolean isExplicitClosed()
isExplicitClosed in interface Listenerpublic int getRetriesAllDown()
getRetriesAllDown in interface Listenerpublic boolean isAutoReconnect()
isAutoReconnect in interface Listenerpublic UrlParser getUrlParser()
getUrlParser in interface Listener
public abstract void preExecute()
throws SQLException
preExecute in interface ListenerSQLException
public abstract void preClose()
throws SQLException
preClose in interface ListenerSQLException
public abstract void reconnectFailedConnection(SearchFilter filter)
throws SQLException
reconnectFailedConnection in interface ListenerSQLException
public abstract void switchReadOnlyConnection(Boolean readonly)
throws SQLException
switchReadOnlyConnection in interface ListenerSQLException
public abstract HandleErrorResult primaryFail(Method method,
Object[] args)
throws Throwable
primaryFail in interface ListenerThrowable
public void throwFailoverMessage(HostAddress failHostAddress,
boolean wasMaster,
SQLException queryException,
boolean reconnected)
throws SQLException
throwFailoverMessage in interface ListenerfailHostAddress - failedHostAddresswasMaster - was failed connection masterqueryException - internal errorreconnected - connection status
SQLException - error with failover informationpublic boolean canRetryFailLoop()
canRetryFailLoop in interface Listener
public abstract void reconnect()
throws SQLException
reconnect in interface ListenerSQLExceptionpublic abstract boolean checkMasterStatus(SearchFilter searchFilter)
checkMasterStatus in interface Listenerpublic long getLastQueryNanos()
getLastQueryNanos in interface Listenerprotected boolean pingMasterProtocol(Protocol protocol)
public void closeConnection(Protocol protocol)
protocol - connection to close.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||