Class FailoverProxy

java.lang.Object
org.mariadb.jdbc.internal.failover.FailoverProxy
All Implemented Interfaces:
InvocationHandler

public class FailoverProxy extends Object implements InvocationHandler
  • Field Details

  • Constructor Details

    • FailoverProxy

      public FailoverProxy(Listener listener, ReentrantLock lock, LruTraceCache traceCache) throws SQLException
      Proxy constructor.
      Parameters:
      listener - failover implementation.
      lock - synchronisation lock
      traceCache - trace cache
      Throws:
      SQLException - if connection error occur
  • Method Details

    • invoke

      public Object invoke(Object proxy, Method method, Object[] args) throws Throwable
      Proxy that catch Protocol call, to permit to catch errors and handle failover when multiple hosts.
      Specified by:
      invoke in interface InvocationHandler
      Parameters:
      proxy - the current protocol
      method - the called method on the protocol
      args - methods parameters
      Returns:
      protocol method result
      Throws:
      Throwable - the method throwed error if not catch by failover
    • hasToHandleFailover

      public boolean hasToHandleFailover(SQLException exception)
      Check if this Sqlerror is a connection exception. if that's the case, must be handle by failover

      error codes : 08000 : connection exception 08001 : SQL client unable to establish SQL connection 08002 : connection name in use 08003 : connection does not exist 08004 : SQL server rejected SQL connection 08006 : connection failure 08007 : transaction resolution unknown 70100 : connection was killed if error code is "1927"

      Parameters:
      exception - the Exception
      Returns:
      true if there has been a connection error that must be handled by failover
    • reconnect

      public void reconnect() throws SQLException
      Launch reconnect implementation.
      Throws:
      SQLException - exception
    • getListener

      public Listener getListener()