Class AbstractMastersSlavesListener

    • 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 interface Listener
        Overrides:
        handleFailover in class AbstractMastersListener
        Parameters:
        method - called method
        args - methods parameters
        protocol - 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
      • 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()
      • 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