Class AbstractRemotingConnection

    • Method Summary

      All Methods Instance Methods Concrete 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.
      java.util.concurrent.Future asyncFail​(org.apache.activemq.artemis.api.core.ActiveMQException me)
      Same thing as fail, but using an executor.
      void bufferReceived​(java.lang.Object connectionID, org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer)
      called by the remoting connection when a buffer is received.
      protected void callClosingListeners()  
      protected void callFailureListeners​(org.apache.activemq.artemis.api.core.ActiveMQException me, java.lang.String scaleDownTargetNodeID)  
      boolean checkDataReceived()
      returns true if any data has been received since the last time this method was called.
      org.apache.activemq.artemis.api.core.ActiveMQBuffer createTransportBuffer​(int size)
      creates a new ActiveMQBuffer of the specified size.
      void fail​(org.apache.activemq.artemis.api.core.ActiveMQException me)
      called when the underlying connection fails.
      void flush()
      flush all outstanding data from the connection.
      java.lang.String getClientID()
      Returns the Client ID associated with this connection
      long getCreationTime()
      Returns the creation time of the RemotingConnection.
      java.util.List<org.apache.activemq.artemis.core.remoting.FailureListener> getFailureListeners()
      return all the failure listeners
      java.lang.Object getID()
      Returns the unique id of the RemotingConnection.
      java.lang.String getLocalAddress()  
      java.lang.String getRemoteAddress()
      returns a string representation of the remote address of this connection
      javax.security.auth.Subject getSubject()
      the possibly null subject associated with this connection
      Connection getTransportConnection()
      return the underlying Connection.
      java.lang.String getTransportLocalAddress()
      Returns a string representation of the local address this connection is connected to.
      boolean isClient()
      Returns whether or not the RemotingConnection is a client
      boolean isDestroyed()
      Returns true if this RemotingConnection has been destroyed.
      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​(org.apache.activemq.artemis.api.core.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 Listener
      java.util.List<org.apache.activemq.artemis.core.remoting.CloseListener> removeCloseListeners()  
      boolean removeFailureListener​(org.apache.activemq.artemis.core.remoting.FailureListener listener)
      remove the failure listener
      java.util.List<org.apache.activemq.artemis.core.remoting.FailureListener> removeFailureListeners()  
      void scheduledFlush()  
      void setClientID​(java.lang.String clientId)
      Sets the client ID associated with this connection
      void setCloseListeners​(java.util.List<org.apache.activemq.artemis.core.remoting.CloseListener> listeners)  
      void setFailureListeners​(java.util.List<org.apache.activemq.artemis.core.remoting.FailureListener> listeners)
      set the failure listeners.
      void setSubject​(javax.security.auth.Subject subject)
      sets the currently associated subject for this connection
      • Methods inherited from class java.lang.Object

        clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
    • Field Detail

      • failureListeners

        protected final java.util.List<org.apache.activemq.artemis.core.remoting.FailureListener> failureListeners
      • closeListeners

        protected final java.util.List<org.apache.activemq.artemis.core.remoting.CloseListener> closeListeners
      • transportConnection

        protected final Connection transportConnection
      • executor

        protected final java.util.concurrent.Executor executor
      • creationTime

        protected final long creationTime
      • destroyed

        protected volatile boolean destroyed
      • dataReceived

        protected volatile boolean dataReceived
    • Constructor Detail

      • AbstractRemotingConnection

        public AbstractRemotingConnection​(Connection transportConnection,
                                          java.util.concurrent.Executor executor)
    • Method Detail

      • getFailureListeners

        public java.util.List<org.apache.activemq.artemis.core.remoting.FailureListener> getFailureListeners()
        Description copied from interface: RemotingConnection
        return all the failure listeners
        Specified by:
        getFailureListeners in interface RemotingConnection
        Returns:
        the listeners
      • callFailureListeners

        protected void callFailureListeners​(org.apache.activemq.artemis.api.core.ActiveMQException me,
                                            java.lang.String scaleDownTargetNodeID)
      • callClosingListeners

        protected void callClosingListeners()
      • setFailureListeners

        public void setFailureListeners​(java.util.List<org.apache.activemq.artemis.core.remoting.FailureListener> listeners)
        Description copied from interface: RemotingConnection
        set the failure listeners.

        These will be called in the event of the connection being closed. Any previously added listeners will be removed.

        Specified by:
        setFailureListeners in interface RemotingConnection
        Parameters:
        listeners - the listeners to add.
      • getLocalAddress

        public java.lang.String getLocalAddress()
      • getRemoteAddress

        public java.lang.String getRemoteAddress()
        Description copied from interface: RemotingConnection
        returns a string representation of the remote address of this connection
        Specified by:
        getRemoteAddress in interface RemotingConnection
        Returns:
        the remote address
      • addFailureListener

        public void addFailureListener​(org.apache.activemq.artemis.core.remoting.FailureListener listener)
        Description copied from interface: RemotingConnection
        add a failure listener.

        The listener will be called in the event of connection failure.

        Specified by:
        addFailureListener in interface RemotingConnection
        Parameters:
        listener - the listener
      • removeFailureListener

        public boolean removeFailureListener​(org.apache.activemq.artemis.core.remoting.FailureListener listener)
        Description copied from interface: RemotingConnection
        remove the failure listener
        Specified by:
        removeFailureListener in interface RemotingConnection
        Parameters:
        listener - the lister to remove
        Returns:
        true if removed
      • addCloseListener

        public void addCloseListener​(org.apache.activemq.artemis.core.remoting.CloseListener listener)
        Description copied from interface: RemotingConnection
        add a CloseListener.

        This will be called in the event of the connection being closed.

        Specified by:
        addCloseListener in interface RemotingConnection
        Parameters:
        listener - the listener to add
      • removeCloseListener

        public boolean removeCloseListener​(org.apache.activemq.artemis.core.remoting.CloseListener listener)
        Description copied from interface: RemotingConnection
        remove a Close Listener
        Specified by:
        removeCloseListener in interface RemotingConnection
        Parameters:
        listener - the listener to remove
        Returns:
        true if removed
      • removeCloseListeners

        public java.util.List<org.apache.activemq.artemis.core.remoting.CloseListener> removeCloseListeners()
        Specified by:
        removeCloseListeners in interface RemotingConnection
      • removeFailureListeners

        public java.util.List<org.apache.activemq.artemis.core.remoting.FailureListener> removeFailureListeners()
        Specified by:
        removeFailureListeners in interface RemotingConnection
      • setCloseListeners

        public void setCloseListeners​(java.util.List<org.apache.activemq.artemis.core.remoting.CloseListener> listeners)
        Specified by:
        setCloseListeners in interface RemotingConnection
      • createTransportBuffer

        public org.apache.activemq.artemis.api.core.ActiveMQBuffer createTransportBuffer​(int size)
        Description copied from interface: RemotingConnection
        creates a new ActiveMQBuffer of the specified size. For the purpose of i/o outgoing packets
        Specified by:
        createTransportBuffer in interface RemotingConnection
        Parameters:
        size - the size of buffer required
        Returns:
        the buffer
      • checkDataReceived

        public boolean checkDataReceived()
        Description copied from interface: RemotingConnection
        returns true if any data has been received since the last time this method was called.
        Specified by:
        checkDataReceived in interface RemotingConnection
        Returns:
        true if data has been received.
      • fail

        public void fail​(org.apache.activemq.artemis.api.core.ActiveMQException me)
        Description copied from interface: RemotingConnection
        called when the underlying connection fails.
        Specified by:
        fail in interface RemotingConnection
        Parameters:
        me - the exception that caused the failure
      • asyncFail

        public java.util.concurrent.Future asyncFail​(org.apache.activemq.artemis.api.core.ActiveMQException me)
        Description copied from interface: RemotingConnection
        Same thing as fail, but using an executor. semantic of send here, is asynchrounous.
        Specified by:
        asyncFail in interface RemotingConnection
      • bufferReceived

        public void bufferReceived​(java.lang.Object connectionID,
                                   org.apache.activemq.artemis.api.core.ActiveMQBuffer buffer)
        Description copied from interface: BufferHandler
        called by the remoting connection when a buffer is received.
        Specified by:
        bufferReceived in interface BufferHandler
        Parameters:
        connectionID - the connection the buffer was received on
        buffer - the buffer to decode
      • killMessage

        public void killMessage​(org.apache.activemq.artemis.api.core.SimpleString nodeID)
        Description copied from interface: RemotingConnection
        if slow consumer is killed,send the msessage to client.
        Specified by:
        killMessage in interface RemotingConnection
      • isSupportReconnect

        public boolean isSupportReconnect()
        Description copied from interface: RemotingConnection
        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.
        Specified by:
        isSupportReconnect in interface RemotingConnection
        Returns:
      • isSupportsFlowControl

        public boolean isSupportsFlowControl()
        Description copied from interface: RemotingConnection
        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.
        Specified by:
        isSupportsFlowControl in interface RemotingConnection
        Returns:
      • setSubject

        public void setSubject​(javax.security.auth.Subject subject)
        Description copied from interface: RemotingConnection
        sets the currently associated subject for this connection
        Specified by:
        setSubject in interface RemotingConnection
      • getSubject

        public javax.security.auth.Subject getSubject()
        Description copied from interface: RemotingConnection
        the possibly null subject associated with this connection
        Specified by:
        getSubject in interface RemotingConnection
        Returns:
      • setClientID

        public void setClientID​(java.lang.String clientId)
        Description copied from interface: RemotingConnection
        Sets the client ID associated with this connection
        Specified by:
        setClientID in interface RemotingConnection
      • getTransportLocalAddress

        public java.lang.String getTransportLocalAddress()
        Description copied from interface: RemotingConnection
        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.
        Specified by:
        getTransportLocalAddress in interface RemotingConnection
        Returns:
        the local address of transport connection