com.mysql.jdbc
public class RandomBalanceStrategy extends java.lang.Object implements BalanceStrategy
Constructor and Description |
---|
RandomBalanceStrategy() |
Modifier and Type | Method and Description |
---|---|
void |
destroy()
Called by the driver when this extension should release any resources
it is holding and cleanup internally before the connection is
closed.
|
void |
init(Connection conn,
java.util.Properties props)
Called once per connection that wants to use the extension
The properties are the same ones passed in in the URL or arguments to
Driver.connect() or DriverManager.getConnection().
|
ConnectionImpl |
pickConnection(LoadBalancingConnectionProxy proxy,
java.util.List<java.lang.String> configuredHosts,
java.util.Map<java.lang.String,ConnectionImpl> liveConnections,
long[] responseTimes,
int numRetries)
Called by the driver to pick a new connection to route requests over.
|
public void destroy()
Extension
public void init(Connection conn, java.util.Properties props) throws java.sql.SQLException
Extension
init
in interface Extension
conn
- the connection for which this extension is being createdprops
- configuration values as passed to the connection. Note that
in order to support javax.sql.DataSources, configuration properties specific
to an interceptor must be passed via setURL() on the
DataSource. Extension properties are not exposed via
accessor/mutator methods on DataSources.java.sql.SQLException
- should be thrown if the the Extension
can not initialize itself.public ConnectionImpl pickConnection(LoadBalancingConnectionProxy proxy, java.util.List<java.lang.String> configuredHosts, java.util.Map<java.lang.String,ConnectionImpl> liveConnections, long[] responseTimes, int numRetries) throws java.sql.SQLException
BalanceStrategy
pickConnection
in interface BalanceStrategy
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.java.sql.SQLException
- if a new connection can not be found or created by this
strategy.LoadBalancingConnectionProxy.createConnectionForHost(String)