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 voidaddCloseListener(org.apache.activemq.artemis.core.remoting.CloseListener listener)add a CloseListener.voidaddFailureListener(org.apache.activemq.artemis.core.remoting.FailureListener listener)add a failure listener.java.util.concurrent.FutureasyncFail(org.apache.activemq.artemis.api.core.ActiveMQException me)Same thing as fail, but using an executor.booleancheckDataReceived()returns true if any data has been received since the last time this method was called.org.apache.activemq.artemis.api.core.ActiveMQBuffercreateTransportBuffer(int size)creates a new ActiveMQBuffer of the specified size.voiddestroy()destroys this connection.voiddisconnect(boolean criticalError)Disconnect the connection, closing all channelsvoiddisconnect(java.lang.String scaleDownNodeID, boolean criticalError)Disconnect the connection, closing all channelsdefault voiddisconnect(org.apache.activemq.artemis.api.core.DisconnectReason reason, java.lang.String targetNodeID, TransportConfiguration targetConnector)Disconnect the connection, closing all channelsvoidfail(org.apache.activemq.artemis.api.core.ActiveMQException me)called when the underlying connection fails.voidfail(org.apache.activemq.artemis.api.core.ActiveMQException me, java.lang.String scaleDownTargetNodeID)called when the underlying connection fails.voidflush()flush all outstanding data from the connection.javax.security.auth.SubjectgetAuditSubject()java.lang.StringgetClientID()Returns the Client ID associated with this connectionlonggetCreationTime()Returns the creation time of theRemotingConnection.java.util.List<org.apache.activemq.artemis.core.remoting.FailureListener>getFailureListeners()return all the failure listenersjava.lang.ObjectgetID()Returns the unique id of theRemotingConnection.java.lang.StringgetProtocolName()Returns the name of the protocol for this Remoting Connectionjava.lang.StringgetRemoteAddress()returns a string representation of the remote address of this connectionjavax.security.auth.SubjectgetSubject()the possibly null identity associated with this connectionConnectiongetTransportConnection()return the underlying Connection.java.lang.StringgetTransportLocalAddress()Returns a string representation of the local address this connection is connected to.booleanisClient()Returns whether or not theRemotingConnectionis a clientbooleanisDestroyed()Returns true if thisRemotingConnectionhas been destroyed.default booleanisSameTarget(TransportConfiguration... configs)booleanisSupportReconnect()This will check if reconnects are supported on the protocol and configuration.booleanisSupportsFlowControl()Return true if the protocol supports flow control.booleanisWritable(ReadyListener callback)voidkillMessage(org.apache.activemq.artemis.api.core.SimpleString nodeID)if slow consumer is killed,send the msessage to client.booleanremoveCloseListener(org.apache.activemq.artemis.core.remoting.CloseListener listener)remove a Close Listenerjava.util.List<org.apache.activemq.artemis.core.remoting.CloseListener>removeCloseListeners()booleanremoveFailureListener(org.apache.activemq.artemis.core.remoting.FailureListener listener)remove the failure listenerjava.util.List<org.apache.activemq.artemis.core.remoting.FailureListener>removeFailureListeners()voidscheduledFlush()voidsetAuditSubject(javax.security.auth.Subject subject)voidsetClientID(java.lang.String cID)Sets the client ID associated with this connectionvoidsetCloseListeners(java.util.List<org.apache.activemq.artemis.core.remoting.CloseListener> listeners)voidsetFailureListeners(java.util.List<org.apache.activemq.artemis.core.remoting.FailureListener> listeners)set the failure listeners.-
Methods inherited from interface org.apache.activemq.artemis.spi.core.remoting.BufferHandler
bufferReceived, endOfBatch
-
-
-
-
Method Detail
-
getID
java.lang.Object getID()
Returns the unique id of theRemotingConnection.- Returns:
- the id
-
getCreationTime
long getCreationTime()
Returns the creation time of theRemotingConnection.
-
getRemoteAddress
java.lang.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
java.util.List<org.apache.activemq.artemis.core.remoting.CloseListener> removeCloseListeners()
-
setCloseListeners
void setCloseListeners(java.util.List<org.apache.activemq.artemis.core.remoting.CloseListener> listeners)
-
getFailureListeners
java.util.List<org.apache.activemq.artemis.core.remoting.FailureListener> getFailureListeners()
return all the failure listeners- Returns:
- the listeners
-
removeFailureListeners
java.util.List<org.apache.activemq.artemis.core.remoting.FailureListener> removeFailureListeners()
-
setFailureListeners
void setFailureListeners(java.util.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
org.apache.activemq.artemis.api.core.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(org.apache.activemq.artemis.api.core.ActiveMQException me)
called when the underlying connection fails.- Parameters:
me- the exception that caused the failure
-
asyncFail
java.util.concurrent.Future asyncFail(org.apache.activemq.artemis.api.core.ActiveMQException me)
Same thing as fail, but using an executor. semantic of send here, is asynchrounous.- Parameters:
me-
-
fail
void fail(org.apache.activemq.artemis.api.core.ActiveMQException me, java.lang.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 theRemotingConnectionis a client- Returns:
- true if client, false if a server
-
isDestroyed
boolean isDestroyed()
Returns true if thisRemotingConnectionhas been destroyed.- Returns:
- true if destroyed, otherwise false
-
disconnect
void disconnect(boolean criticalError)
Disconnect the connection, closing all channels
-
disconnect
void disconnect(java.lang.String scaleDownNodeID, boolean criticalError)Disconnect the connection, closing all channels
-
disconnect
default void disconnect(org.apache.activemq.artemis.api.core.DisconnectReason reason, java.lang.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(org.apache.activemq.artemis.api.core.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:
-
setAuditSubject
void setAuditSubject(javax.security.auth.Subject subject)
-
getAuditSubject
javax.security.auth.Subject getAuditSubject()
-
getSubject
javax.security.auth.Subject getSubject()
the possibly null identity associated with this connection- Returns:
-
getProtocolName
java.lang.String getProtocolName()
Returns the name of the protocol for this Remoting Connection- Returns:
-
setClientID
void setClientID(java.lang.String cID)
Sets the client ID associated with this connection- Parameters:
cID-
-
getClientID
java.lang.String getClientID()
Returns the Client ID associated with this connection- Returns:
-
getTransportLocalAddress
java.lang.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)
-
-