public class ClusterAwareWriterFailoverHandler extends java.lang.Object implements WriterFailoverHandler
Writer Failover Process goal is to re-establish connection to a writer. Connection to a writer may be disrupted either by temporary network issue, or due to writer host unavailability during cluster failover. This handler tries both approaches in parallel: 1) try to re-connect to the same writer host, 2) try to update cluster topology and connect to a newly elected writer.
| Modifier and Type | Field and Description |
|---|---|
protected ConnectionProvider |
connectionProvider |
protected Log |
log
The logger we're going to use.
|
protected int |
maxFailoverTimeoutMs |
protected static Log |
NULL_LOGGER
Null logger shared by all connections at startup.
|
protected ReaderFailoverHandler |
readerFailoverHandler |
protected int |
readTopologyIntervalMs |
protected int |
reconnectWriterIntervalMs |
protected TopologyService |
topologyService |
| Constructor and Description |
|---|
ClusterAwareWriterFailoverHandler(TopologyService topologyService,
ConnectionProvider connectionProvider,
ReaderFailoverHandler readerFailoverHandler,
int failoverTimeoutMs,
int readTopologyIntervalMs,
int reconnectWriterIntervalMs,
Log log)
ClusterAwareWriterFailoverHandler constructor.
|
ClusterAwareWriterFailoverHandler(TopologyService topologyService,
ConnectionProvider connectionProvider,
ReaderFailoverHandler readerFailoverHandler,
Log log)
ClusterAwareWriterFailoverHandler constructor.
|
| Modifier and Type | Method and Description |
|---|---|
ResolvedHostInfo |
failover(java.util.List<HostInfo> currentTopology)
Called to start Writer Failover Process.
|
protected static final Log NULL_LOGGER
protected transient Log log
protected int maxFailoverTimeoutMs
protected int readTopologyIntervalMs
protected int reconnectWriterIntervalMs
protected TopologyService topologyService
protected ConnectionProvider connectionProvider
protected ReaderFailoverHandler readerFailoverHandler
public ClusterAwareWriterFailoverHandler(TopologyService topologyService, ConnectionProvider connectionProvider, ReaderFailoverHandler readerFailoverHandler, Log log)
public ClusterAwareWriterFailoverHandler(TopologyService topologyService, ConnectionProvider connectionProvider, ReaderFailoverHandler readerFailoverHandler, int failoverTimeoutMs, int readTopologyIntervalMs, int reconnectWriterIntervalMs, Log log)
public ResolvedHostInfo failover(java.util.List<HostInfo> currentTopology) throws java.sql.SQLException
failover in interface WriterFailoverHandlercurrentTopology - Cluster current topologyResolvedHostInfo The results of this process. May return null, which is
considered an unsuccessful result.java.sql.SQLException