Class FailoverTransport
- java.lang.Object
-
- org.apache.activemq.transport.failover.FailoverTransport
-
- All Implemented Interfaces:
Service
,CompositeTransport
,Transport
public class FailoverTransport extends Object implements CompositeTransport
A Transport that is made reliable by being able to fail over to another transport when a transport failure is detected.
-
-
Constructor Summary
Constructors Constructor Description FailoverTransport()
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description void
add(boolean rebalance, String u)
void
add(boolean rebalance, URI[] u)
FutureResponse
asyncRequest(Object command, ResponseCallback responseCallback)
An asynchronous request response where the Receipt will be returned in the future.void
connectionInterruptProcessingComplete(ConnectionId connectionId)
void
disposeTransport(Transport transport)
int
getBackupPoolSize()
Transport
getConnectedTransport()
URI
getConnectedTransportURI()
int
getConnectFailures()
int
getCurrentBackups()
long
getInitialReconnectDelay()
int
getMaxCacheSize()
int
getMaxReconnectAttempts()
long
getMaxReconnectDelay()
X509Certificate[]
getPeerCertificates()
int
getReceiveCounter()
Returns a counter which gets incremented as data is read from the transport.long
getReconnectDelay()
double
getReconnectDelayExponent()
String
getRemoteAddress()
int
getStartupMaxReconnectAttempts()
ConnectionStateTracker
getStateTracker()
long
getTimeout()
TransportListener
getTransportListener()
Returns the current transport listenerString
getUpdateURIsURL()
int
getWarnAfterReconnectAttempts()
WireFormat
getWireFormat()
Retrieves the WireFormat instance associated with this Transport instance.void
handleConnectionControl(ConnectionControl control)
void
handleTransportFailure(IOException e)
void
handleTransportFailure(Transport failed, IOException e)
boolean
isBackup()
boolean
isConnected()
boolean
isConnectedToPriority()
boolean
isDisposed()
boolean
isFaultTolerant()
Indicates if the transport can handle faultsprotected boolean
isPriority(URI uri)
boolean
isPriorityBackup()
boolean
isRandomize()
boolean
isRebalanceUpdateURIs()
boolean
isReconnectSupported()
boolean
isTrackMessages()
boolean
isTrackTransactionProducers()
boolean
isUpdateURIsSupported()
boolean
isUseExponentialBackOff()
<T> T
narrow(Class<T> target)
void
oneway(Object o)
A one way asynchronous sendvoid
reconnect(boolean rebalance)
void
reconnect(URI uri)
reconnect to another locationvoid
remove(boolean rebalance, URI[] u)
Object
request(Object command)
A synchronous request responseObject
request(Object command, int timeout)
A synchronous request responseprotected void
restoreTransport(Transport t)
void
setBackup(boolean backup)
void
setBackupPoolSize(int backupPoolSize)
void
setInitialReconnectDelay(long initialReconnectDelay)
void
setMaxCacheSize(int maxCacheSize)
void
setMaxReconnectAttempts(int maxReconnectAttempts)
void
setMaxReconnectDelay(long maxReconnectDelay)
void
setNestedExtraQueryOptions(String nestedExtraQueryOptions)
void
setPeerCertificates(X509Certificate[] certificates)
Sets the certificates provided by the connected peer.void
setPriorityBackup(boolean priorityBackup)
void
setPriorityURIs(String priorityURIs)
void
setRandomize(boolean randomize)
void
setRebalanceUpdateURIs(boolean rebalanceUpdateURIs)
void
setReconnectDelay(long reconnectDelay)
void
setReconnectDelayExponent(double reconnectDelayExponent)
void
setReconnectSupported(boolean value)
void
setStartupMaxReconnectAttempts(int startupMaxReconnectAttempts)
void
setTimeout(long timeout)
void
setTrackMessages(boolean trackMessages)
void
setTrackTransactionProducers(boolean trackTransactionProducers)
void
setTransportListener(TransportListener commandListener)
Registers an inbound command listenervoid
setUpdateURIsSupported(boolean value)
void
setUpdateURIsURL(String updateURIsURL)
void
setUseExponentialBackOff(boolean useExponentialBackOff)
void
setWarnAfterReconnectAttempts(int warnAfterReconnectAttempts)
Sets the number of Connect / Reconnect attempts that must occur before a warn message is logged indicating that the transport is not connected.void
start()
void
stop()
String
toString()
void
updateURIs(boolean rebalance, URI[] updatedURIs)
Provide a list of available alternative locations
-
-
-
Method Detail
-
disposeTransport
public final void disposeTransport(Transport transport)
-
handleTransportFailure
public final void handleTransportFailure(IOException e) throws InterruptedException
- Throws:
InterruptedException
-
handleTransportFailure
public final void handleTransportFailure(Transport failed, IOException e) throws InterruptedException
- Throws:
InterruptedException
-
handleConnectionControl
public final void handleConnectionControl(ConnectionControl control)
-
start
public void start() throws Exception
-
getInitialReconnectDelay
public long getInitialReconnectDelay()
-
setInitialReconnectDelay
public void setInitialReconnectDelay(long initialReconnectDelay)
-
getMaxReconnectDelay
public long getMaxReconnectDelay()
-
setMaxReconnectDelay
public void setMaxReconnectDelay(long maxReconnectDelay)
-
getReconnectDelay
public long getReconnectDelay()
-
setReconnectDelay
public void setReconnectDelay(long reconnectDelay)
-
getReconnectDelayExponent
public double getReconnectDelayExponent()
-
setReconnectDelayExponent
public void setReconnectDelayExponent(double reconnectDelayExponent)
-
getConnectedTransport
public Transport getConnectedTransport()
-
getConnectedTransportURI
public URI getConnectedTransportURI()
-
getMaxReconnectAttempts
public int getMaxReconnectAttempts()
-
setMaxReconnectAttempts
public void setMaxReconnectAttempts(int maxReconnectAttempts)
-
getStartupMaxReconnectAttempts
public int getStartupMaxReconnectAttempts()
-
setStartupMaxReconnectAttempts
public void setStartupMaxReconnectAttempts(int startupMaxReconnectAttempts)
-
getTimeout
public long getTimeout()
-
setTimeout
public void setTimeout(long timeout)
-
isRandomize
public boolean isRandomize()
- Returns:
- Returns the randomize.
-
setRandomize
public void setRandomize(boolean randomize)
- Parameters:
randomize
- The randomize to set.
-
isBackup
public boolean isBackup()
-
setBackup
public void setBackup(boolean backup)
-
getBackupPoolSize
public int getBackupPoolSize()
-
setBackupPoolSize
public void setBackupPoolSize(int backupPoolSize)
-
getCurrentBackups
public int getCurrentBackups()
-
isTrackMessages
public boolean isTrackMessages()
-
setTrackMessages
public void setTrackMessages(boolean trackMessages)
-
isTrackTransactionProducers
public boolean isTrackTransactionProducers()
-
setTrackTransactionProducers
public void setTrackTransactionProducers(boolean trackTransactionProducers)
-
getMaxCacheSize
public int getMaxCacheSize()
-
setMaxCacheSize
public void setMaxCacheSize(int maxCacheSize)
-
isPriorityBackup
public boolean isPriorityBackup()
-
setPriorityBackup
public void setPriorityBackup(boolean priorityBackup)
-
setPriorityURIs
public void setPriorityURIs(String priorityURIs)
-
oneway
public void oneway(Object o) throws IOException
Description copied from interface:Transport
A one way asynchronous send- Specified by:
oneway
in interfaceTransport
- Throws:
IOException
-
asyncRequest
public FutureResponse asyncRequest(Object command, ResponseCallback responseCallback) throws IOException
Description copied from interface:Transport
An asynchronous request response where the Receipt will be returned in the future. If responseCallback is not null, then it will be called when the response has been completed.- Specified by:
asyncRequest
in interfaceTransport
responseCallback
- TODO- Returns:
- the FutureResponse
- Throws:
IOException
-
request
public Object request(Object command) throws IOException
Description copied from interface:Transport
A synchronous request response- Specified by:
request
in interfaceTransport
- Returns:
- the response
- Throws:
IOException
-
request
public Object request(Object command, int timeout) throws IOException
Description copied from interface:Transport
A synchronous request response- Specified by:
request
in interfaceTransport
- Returns:
- the repsonse or null if timeout
- Throws:
IOException
-
add
public void add(boolean rebalance, URI[] u)
- Specified by:
add
in interfaceCompositeTransport
-
remove
public void remove(boolean rebalance, URI[] u)
- Specified by:
remove
in interfaceCompositeTransport
-
add
public void add(boolean rebalance, String u)
-
reconnect
public void reconnect(boolean rebalance)
-
getTransportListener
public TransportListener getTransportListener()
Description copied from interface:Transport
Returns the current transport listener- Specified by:
getTransportListener
in interfaceTransport
- Returns:
-
setTransportListener
public void setTransportListener(TransportListener commandListener)
Description copied from interface:Transport
Registers an inbound command listener- Specified by:
setTransportListener
in interfaceTransport
-
narrow
public <T> T narrow(Class<T> target)
-
restoreTransport
protected void restoreTransport(Transport t) throws Exception, IOException
- Throws:
Exception
IOException
-
isUseExponentialBackOff
public boolean isUseExponentialBackOff()
-
setUseExponentialBackOff
public void setUseExponentialBackOff(boolean useExponentialBackOff)
-
getRemoteAddress
public String getRemoteAddress()
- Specified by:
getRemoteAddress
in interfaceTransport
- Returns:
- the remote address for this connection
-
isFaultTolerant
public boolean isFaultTolerant()
Description copied from interface:Transport
Indicates if the transport can handle faults- Specified by:
isFaultTolerant
in interfaceTransport
- Returns:
- true if fault tolerant
-
isPriority
protected boolean isPriority(URI uri)
-
isDisposed
public boolean isDisposed()
- Specified by:
isDisposed
in interfaceTransport
- Returns:
- true if the transport is disposed
-
isConnected
public boolean isConnected()
- Specified by:
isConnected
in interfaceTransport
- Returns:
- true if the transport is connected
-
reconnect
public void reconnect(URI uri) throws IOException
Description copied from interface:Transport
reconnect to another location- Specified by:
reconnect
in interfaceTransport
- Throws:
IOException
- on failure of if not supported
-
isReconnectSupported
public boolean isReconnectSupported()
- Specified by:
isReconnectSupported
in interfaceTransport
- Returns:
- true if reconnect is supported
-
setReconnectSupported
public void setReconnectSupported(boolean value)
-
isUpdateURIsSupported
public boolean isUpdateURIsSupported()
- Specified by:
isUpdateURIsSupported
in interfaceTransport
- Returns:
- true if updating uris is supported
-
setUpdateURIsSupported
public void setUpdateURIsSupported(boolean value)
-
updateURIs
public void updateURIs(boolean rebalance, URI[] updatedURIs) throws IOException
Description copied from interface:Transport
Provide a list of available alternative locations- Specified by:
updateURIs
in interfaceTransport
- Throws:
IOException
-
getUpdateURIsURL
public String getUpdateURIsURL()
- Returns:
- the updateURIsURL
-
setUpdateURIsURL
public void setUpdateURIsURL(String updateURIsURL)
- Parameters:
updateURIsURL
- the updateURIsURL to set
-
isRebalanceUpdateURIs
public boolean isRebalanceUpdateURIs()
- Returns:
- the rebalanceUpdateURIs
-
setRebalanceUpdateURIs
public void setRebalanceUpdateURIs(boolean rebalanceUpdateURIs)
- Parameters:
rebalanceUpdateURIs
- the rebalanceUpdateURIs to set
-
getReceiveCounter
public int getReceiveCounter()
Description copied from interface:Transport
Returns a counter which gets incremented as data is read from the transport. It should only be used to determine if there is progress being made in reading the next command from the transport. The value may wrap into the negative numbers.- Specified by:
getReceiveCounter
in interfaceTransport
- Returns:
- a counter which gets incremented as data is read from the transport.
-
getConnectFailures
public int getConnectFailures()
-
connectionInterruptProcessingComplete
public void connectionInterruptProcessingComplete(ConnectionId connectionId)
-
getStateTracker
public ConnectionStateTracker getStateTracker()
-
isConnectedToPriority
public boolean isConnectedToPriority()
-
setNestedExtraQueryOptions
public void setNestedExtraQueryOptions(String nestedExtraQueryOptions)
-
getWarnAfterReconnectAttempts
public int getWarnAfterReconnectAttempts()
-
setWarnAfterReconnectAttempts
public void setWarnAfterReconnectAttempts(int warnAfterReconnectAttempts)
Sets the number of Connect / Reconnect attempts that must occur before a warn message is logged indicating that the transport is not connected. This can be useful when the client is running inside some container or service as it give an indication of some problem with the client connection that might not otherwise be visible. To disable the log messages this value should be set to a value @{code attempts <= 0}- Parameters:
warnAfterReconnectAttempts
- The number of failed connection attempts that must happen before a warning is logged.
-
getPeerCertificates
public X509Certificate[] getPeerCertificates()
- Specified by:
getPeerCertificates
in interfaceTransport
- Returns:
- the Certificates provided by the peer, or null if not a secure channel.
-
setPeerCertificates
public void setPeerCertificates(X509Certificate[] certificates)
Description copied from interface:Transport
Sets the certificates provided by the connected peer.- Specified by:
setPeerCertificates
in interfaceTransport
- Parameters:
certificates
- the Certificates provided by the peer.
-
getWireFormat
public WireFormat getWireFormat()
Description copied from interface:Transport
Retrieves the WireFormat instance associated with this Transport instance.- Specified by:
getWireFormat
in interfaceTransport
- Returns:
- the WireFormat in use.
-
-