Interface RemotingConnection
-
- All Superinterfaces:
BufferHandler
- All Known Implementing Classes:
AbstractRemotingConnection
public interface RemotingConnection extends BufferHandler
A RemotingConnection is a connection between a client and a server. Perhaps a better name for this class now would be ProtocolConnection as this represents the link with the used protocol
-
-
Method Summary
All Methods Instance Methods Abstract Methods Default Methods Modifier and Type Method Description void
addCloseListener(org.apache.activemq.artemis.core.remoting.CloseListener listener)
add a CloseListener.void
addFailureListener(org.apache.activemq.artemis.core.remoting.FailureListener listener)
add a failure listener.Future
asyncFail(ActiveMQException me)
Same thing as fail, but using an executor.boolean
checkDataReceived()
returns true if any data has been received since the last time this method was called.void
close()
ActiveMQBuffer
createTransportBuffer(int size)
creates a new ActiveMQBuffer of the specified size.void
destroy()
destroys this connection.void
disconnect(boolean criticalError)
Disconnect the connection, closing all channelsvoid
disconnect(String scaleDownNodeID, boolean criticalError)
Disconnect the connection, closing all channelsdefault void
disconnect(DisconnectReason reason, String targetNodeID, TransportConfiguration targetConnector)
Disconnect the connection, closing all channelsvoid
fail(ActiveMQException me)
called when the underlying connection fails.void
fail(ActiveMQException me, String scaleDownTargetNodeID)
called when the underlying connection fails.void
flush()
flush all outstanding data from the connection.String
getClientID()
Returns the Client ID associated with this connectionlong
getCreationTime()
Returns the creation time of theRemotingConnection
.List<org.apache.activemq.artemis.core.remoting.FailureListener>
getFailureListeners()
return all the failure listenersObject
getID()
Returns the unique id of theRemotingConnection
.String
getProtocolName()
Returns the name of the protocol for this Remoting ConnectionString
getRemoteAddress()
returns a string representation of the remote address of this connectionSubject
getSubject()
the possibly null subject associated with this connectionConnection
getTransportConnection()
return the underlying Connection.String
getTransportLocalAddress()
Returns a string representation of the local address this connection is connected to.boolean
isClient()
Returns whether or not theRemotingConnection
is a clientboolean
isDestroyed()
Returns true if thisRemotingConnection
has been destroyed.default boolean
isSameTarget(TransportConfiguration... configs)
boolean
isSupportReconnect()
This will check if reconnects are supported on the protocol and configuration.boolean
isSupportsFlowControl()
Return true if the protocol supports flow control.boolean
isWritable(ReadyListener callback)
void
killMessage(SimpleString nodeID)
if slow consumer is killed,send the msessage to client.boolean
removeCloseListener(org.apache.activemq.artemis.core.remoting.CloseListener listener)
remove a Close ListenerList<org.apache.activemq.artemis.core.remoting.CloseListener>
removeCloseListeners()
boolean
removeFailureListener(org.apache.activemq.artemis.core.remoting.FailureListener listener)
remove the failure listenerList<org.apache.activemq.artemis.core.remoting.FailureListener>
removeFailureListeners()
void
scheduledFlush()
void
setClientID(String cID)
Sets the client ID associated with this connectionvoid
setCloseListeners(List<org.apache.activemq.artemis.core.remoting.CloseListener> listeners)
void
setFailureListeners(List<org.apache.activemq.artemis.core.remoting.FailureListener> listeners)
set the failure listeners.void
setSubject(Subject subject)
sets the currently associated subject for this connection-
Methods inherited from interface org.apache.activemq.artemis.spi.core.remoting.BufferHandler
bufferReceived, endOfBatch
-
-
-
-
Method Detail
-
getID
Object getID()
Returns the unique id of theRemotingConnection
.- Returns:
- the id
-
getCreationTime
long getCreationTime()
Returns the creation time of theRemotingConnection
.
-
getRemoteAddress
String getRemoteAddress()
returns a string representation of the remote address of this connection- Returns:
- the remote address
-
scheduledFlush
void scheduledFlush()
-
addFailureListener
void addFailureListener(org.apache.activemq.artemis.core.remoting.FailureListener listener)
add a failure listener.The listener will be called in the event of connection failure.
- Parameters:
listener
- the listener
-
removeFailureListener
boolean removeFailureListener(org.apache.activemq.artemis.core.remoting.FailureListener listener)
remove the failure listener- Parameters:
listener
- the lister to remove- Returns:
- true if removed
-
addCloseListener
void addCloseListener(org.apache.activemq.artemis.core.remoting.CloseListener listener)
add a CloseListener.This will be called in the event of the connection being closed.
- Parameters:
listener
- the listener to add
-
removeCloseListener
boolean removeCloseListener(org.apache.activemq.artemis.core.remoting.CloseListener listener)
remove a Close Listener- Parameters:
listener
- the listener to remove- Returns:
- true if removed
-
removeCloseListeners
List<org.apache.activemq.artemis.core.remoting.CloseListener> removeCloseListeners()
-
setCloseListeners
void setCloseListeners(List<org.apache.activemq.artemis.core.remoting.CloseListener> listeners)
-
getFailureListeners
List<org.apache.activemq.artemis.core.remoting.FailureListener> getFailureListeners()
return all the failure listeners- Returns:
- the listeners
-
removeFailureListeners
List<org.apache.activemq.artemis.core.remoting.FailureListener> removeFailureListeners()
-
setFailureListeners
void setFailureListeners(List<org.apache.activemq.artemis.core.remoting.FailureListener> listeners)
set the failure listeners.These will be called in the event of the connection being closed. Any previously added listeners will be removed.
- Parameters:
listeners
- the listeners to add.
-
createTransportBuffer
ActiveMQBuffer createTransportBuffer(int size)
creates a new ActiveMQBuffer of the specified size. For the purpose of i/o outgoing packets- Parameters:
size
- the size of buffer required- Returns:
- the buffer
-
fail
void fail(ActiveMQException me)
called when the underlying connection fails.- Parameters:
me
- the exception that caused the failure
-
close
void close()
-
asyncFail
Future asyncFail(ActiveMQException me)
Same thing as fail, but using an executor. semantic of send here, is asynchrounous.- Parameters:
me
-
-
fail
void fail(ActiveMQException me, String scaleDownTargetNodeID)
called when the underlying connection fails.- Parameters:
me
- the exception that caused the failurescaleDownTargetNodeID
- the ID of the node where scale down is targeted
-
destroy
void destroy()
destroys this connection.
-
getTransportConnection
Connection getTransportConnection()
return the underlying Connection.- Returns:
- the connection
-
isClient
boolean isClient()
Returns whether or not theRemotingConnection
is a client- Returns:
- true if client, false if a server
-
isDestroyed
boolean isDestroyed()
Returns true if thisRemotingConnection
has been destroyed.- Returns:
- true if destroyed, otherwise false
-
disconnect
void disconnect(boolean criticalError)
Disconnect the connection, closing all channels
-
disconnect
void disconnect(String scaleDownNodeID, boolean criticalError)
Disconnect the connection, closing all channels
-
disconnect
default void disconnect(DisconnectReason reason, String targetNodeID, TransportConfiguration targetConnector)
Disconnect the connection, closing all channels
-
checkDataReceived
boolean checkDataReceived()
returns true if any data has been received since the last time this method was called.- Returns:
- true if data has been received.
-
flush
void flush()
flush all outstanding data from the connection.
-
isWritable
boolean isWritable(ReadyListener callback)
-
killMessage
void killMessage(SimpleString nodeID)
if slow consumer is killed,send the msessage to client.
-
isSupportReconnect
boolean isSupportReconnect()
This will check if reconnects are supported on the protocol and configuration. In case it's not supported a connection failure could remove messages right away from pending deliveries.- Returns:
-
isSupportsFlowControl
boolean isSupportsFlowControl()
Return true if the protocol supports flow control. This is because in some cases we may need to hold message producers in cases like disk full. If the protocol doesn't support it we trash the connection and throw exceptions.- Returns:
-
setSubject
void setSubject(Subject subject)
sets the currently associated subject for this connection- Parameters:
subject
-
-
getSubject
Subject getSubject()
the possibly null subject associated with this connection- Returns:
-
getProtocolName
String getProtocolName()
Returns the name of the protocol for this Remoting Connection- Returns:
-
setClientID
void setClientID(String cID)
Sets the client ID associated with this connection- Parameters:
cID
-
-
getClientID
String getClientID()
Returns the Client ID associated with this connection- Returns:
-
getTransportLocalAddress
String getTransportLocalAddress()
Returns a string representation of the local address this connection is connected to. This is useful when the server is configured at 0.0.0.0 (or multiple IPs). This will give you the actual IP that's being used.- Returns:
- the local address of transport connection
-
isSameTarget
default boolean isSameTarget(TransportConfiguration... configs)
-
-