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 Details

    • getID

      Object getID()
      Returns the unique id of the RemotingConnection.
      Returns:
      the id
    • getCreationTime

      long getCreationTime()
      Returns the creation time of the RemotingConnection.
    • 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 failure
      scaleDownTargetNodeID - 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 the RemotingConnection is a client
      Returns:
      true if client, false if a server
    • isDestroyed

      boolean isDestroyed()
      Returns true if this RemotingConnection 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)