Top Constructors Methods
com.mysql.cj.jdbc.ha

public Class RandomBalanceStrategy

extends Object
implements BalanceStrategy
Class Inheritance
All Implemented Interfaces
com.mysql.cj.jdbc.ha.BalanceStrategy
Known Direct Subclasses
com.mysql.cj.jdbc.ha.ServerAffinityStrategy
Imports
java.lang.reflect.InvocationHandler, java.sql.SQLException, java.util.ArrayList, .HashMap, .List, .Map, com.mysql.cj.Messages, com.mysql.cj.jdbc.ConnectionImpl, .JdbcConnection, com.mysql.cj.jdbc.exceptions.SQLError

Constructor Summary

AccessConstructor and Description
public

Method Summary

Modifier and TypeMethod and Description
private Map<String, Integer>
public ConnectionImpl
pickConnection(InvocationHandler
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.
proxy
,
List<String>
the list of hosts/ports (in "host:port" form) as passed in by the user.
configuredHosts
,
Map<String, JdbcConnection>
a map of host/ports to "live" connections to them.
liveConnections
,
long[]
the list of response times for a transaction for each host in the configured hosts list.
responseTimes
,
int
the number of times the driver expects this strategy to re-try connection attempts if creating a new connection fails.
numRetries
)

Implements com.mysql.cj.jdbc.ha.BalanceStrategy.pickConnection.

Called by the driver to pick a new connection to route requests over.

Inherited from java.lang.Object:
cloneequalsfinalizegetClasshashCodenotifynotifyAlltoStringwaitwaitwait

Constructor Detail

RandomBalanceStrategyback to summary
public RandomBalanceStrategy()

Method Detail

getArrayIndexMapback to summary
private Map<String, Integer> getArrayIndexMap(List<String> l)
pickConnectionback to summary
public ConnectionImpl pickConnection(InvocationHandler proxy, List<String> configuredHosts, Map<String, JdbcConnection> liveConnections, long[] responseTimes, int numRetries) throws SQLException

Implements com.mysql.cj.jdbc.ha.BalanceStrategy.pickConnection.

Doc from com.mysql.cj.jdbc.ha.BalanceStrategy.pickConnection.

Called by the driver to pick a new connection to route requests over. See LoadBalancedConnectionProxy.createConnectionForHost(String)

Parameters
proxy:InvocationHandler

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:List<String>

the list of hosts/ports (in "host:port" form) as passed in by the user.

liveConnections:Map<String, JdbcConnection>

a map of host/ports to "live" connections to them.

responseTimes:long[]

the list of response times for a transaction for each host in the configured hosts list.

numRetries:int

the number of times the driver expects this strategy to re-try connection attempts if creating a new connection fails.

Returns:ConnectionImpl

the physical JDBC connection for the application to use, based upon the strategy employed.

Annotations
@Override
Exceptions
SQLException:
if a new connection can not be found or created by this strategy.