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 Detail

      • 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
      • 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.
      • 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