Class ServerAffinityStrategy

java.lang.Object
com.mysql.cj.jdbc.ha.RandomBalanceStrategy
com.mysql.cj.jdbc.ha.ServerAffinityStrategy
All Implemented Interfaces:
BalanceStrategy

public class ServerAffinityStrategy
extends RandomBalanceStrategy
  • Field Summary

    Fields 
    Modifier and Type Field Description
    java.lang.String[] affinityOrderedServers  
  • Constructor Summary

    Constructors 
    Constructor Description
    ServerAffinityStrategy​(java.lang.String affinityOrdervers)  
  • Method Summary

    Modifier and Type Method Description
    ConnectionImpl pickConnection​(java.lang.reflect.InvocationHandler proxy, java.util.List<java.lang.String> configuredHosts, java.util.Map<java.lang.String,​JdbcConnection> liveConnections, long[] responseTimes, int numRetries)
    Called by the driver to pick a new connection to route requests over.

    Methods inherited from class java.lang.Object

    clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
  • Field Details

  • Constructor Details

  • Method Details

    • pickConnection

      public ConnectionImpl pickConnection​(java.lang.reflect.InvocationHandler proxy, java.util.List<java.lang.String> configuredHosts, java.util.Map<java.lang.String,​JdbcConnection> liveConnections, long[] responseTimes, int numRetries) throws java.sql.SQLException
      Description copied from interface: BalanceStrategy
      Called by the driver to pick a new connection to route requests over. See LoadBalancedConnectionProxy.createConnectionForHost(String)
      Specified by:
      pickConnection in interface BalanceStrategy
      Overrides:
      pickConnection in class RandomBalanceStrategy
      Parameters:
      proxy - the InvocationHandler that deals with actual method calls to the JDBC connection, and serves as a factory for new connections for this strategy via the createConnectionForHost() method. This proxy takes care of maintaining the response time list, map of host/ports to live connections, and taking connections out of the live connections map if they receive a network-related error while they are in use by the application.
      configuredHosts - the list of hosts/ports (in "host:port" form) as passed in by the user.
      liveConnections - a map of host/ports to "live" connections to them.
      responseTimes - the list of response times for a transaction for each host in the configured hosts list.
      numRetries - the number of times the driver expects this strategy to re-try connection attempts if creating a new connection fails.
      Returns:
      the physical JDBC connection for the application to use, based upon the strategy employed.
      Throws:
      java.sql.SQLException - if a new connection can not be found or created by this strategy.