Package com.mysql.cj.jdbc.ha
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.
-
Field Details
-
affinityOrderedServers
public java.lang.String[] affinityOrderedServers
-
-
Constructor Details
-
ServerAffinityStrategy
public ServerAffinityStrategy(java.lang.String affinityOrdervers)
-
-
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.SQLExceptionDescription 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 interfaceBalanceStrategy
- Overrides:
pickConnection
in classRandomBalanceStrategy
- 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.
-