Class TransportConnection

    • Constructor Detail

      • TransportConnection

        public TransportConnection​(TransportConnector connector,
                                   org.apache.activemq.transport.Transport transport,
                                   Broker broker,
                                   org.apache.activemq.thread.TaskRunnerFactory taskRunnerFactory,
                                   org.apache.activemq.thread.TaskRunnerFactory stopTaskRunnerFactory)
        Parameters:
        taskRunnerFactory - - can be null if you want direct dispatch to the transport else commands are sent async.
        stopTaskRunnerFactory - - can not be null, used for stopping this connection.
    • Method Detail

      • serviceExceptionAsync

        public void serviceExceptionAsync​(IOException e)
        Calls the serviceException method in an async thread. Since handling a service exception closes a socket, we should not tie up broker threads since client sockets may hang or cause deadlocks.
        Specified by:
        serviceExceptionAsync in interface Connection
      • serviceException

        public void serviceException​(Throwable e)
        Closes a clients connection due to a detected error. Errors are ignored if: the client is closing or broker is closing. Otherwise, the connection error transmitted to the client before stopping it's transport.
        Specified by:
        serviceException in interface Connection
      • service

        public org.apache.activemq.command.Response service​(org.apache.activemq.command.Command command)
        Description copied from interface: Connection
        Services a client command and submits it to the broker.
        Specified by:
        service in interface Connection
        Returns:
        Response
      • processKeepAlive

        public org.apache.activemq.command.Response processKeepAlive​(org.apache.activemq.command.KeepAliveInfo info)
                                                              throws Exception
        Specified by:
        processKeepAlive in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processRemoveSubscription

        public org.apache.activemq.command.Response processRemoveSubscription​(org.apache.activemq.command.RemoveSubscriptionInfo info)
                                                                       throws Exception
        Specified by:
        processRemoveSubscription in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processWireFormat

        public org.apache.activemq.command.Response processWireFormat​(org.apache.activemq.command.WireFormatInfo info)
                                                               throws Exception
        Specified by:
        processWireFormat in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processShutdown

        public org.apache.activemq.command.Response processShutdown​(org.apache.activemq.command.ShutdownInfo info)
                                                             throws Exception
        Specified by:
        processShutdown in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processFlush

        public org.apache.activemq.command.Response processFlush​(org.apache.activemq.command.FlushCommand command)
                                                          throws Exception
        Specified by:
        processFlush in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processBeginTransaction

        public org.apache.activemq.command.Response processBeginTransaction​(org.apache.activemq.command.TransactionInfo info)
                                                                     throws Exception
        Specified by:
        processBeginTransaction in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processEndTransaction

        public org.apache.activemq.command.Response processEndTransaction​(org.apache.activemq.command.TransactionInfo info)
                                                                   throws Exception
        Specified by:
        processEndTransaction in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processPrepareTransaction

        public org.apache.activemq.command.Response processPrepareTransaction​(org.apache.activemq.command.TransactionInfo info)
                                                                       throws Exception
        Specified by:
        processPrepareTransaction in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processCommitTransactionOnePhase

        public org.apache.activemq.command.Response processCommitTransactionOnePhase​(org.apache.activemq.command.TransactionInfo info)
                                                                              throws Exception
        Specified by:
        processCommitTransactionOnePhase in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processCommitTransactionTwoPhase

        public org.apache.activemq.command.Response processCommitTransactionTwoPhase​(org.apache.activemq.command.TransactionInfo info)
                                                                              throws Exception
        Specified by:
        processCommitTransactionTwoPhase in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processRollbackTransaction

        public org.apache.activemq.command.Response processRollbackTransaction​(org.apache.activemq.command.TransactionInfo info)
                                                                        throws Exception
        Specified by:
        processRollbackTransaction in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processForgetTransaction

        public org.apache.activemq.command.Response processForgetTransaction​(org.apache.activemq.command.TransactionInfo info)
                                                                      throws Exception
        Specified by:
        processForgetTransaction in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processRecoverTransactions

        public org.apache.activemq.command.Response processRecoverTransactions​(org.apache.activemq.command.TransactionInfo info)
                                                                        throws Exception
        Specified by:
        processRecoverTransactions in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processMessage

        public org.apache.activemq.command.Response processMessage​(org.apache.activemq.command.Message messageSend)
                                                            throws Exception
        Specified by:
        processMessage in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processMessageAck

        public org.apache.activemq.command.Response processMessageAck​(org.apache.activemq.command.MessageAck ack)
                                                               throws Exception
        Specified by:
        processMessageAck in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processMessagePull

        public org.apache.activemq.command.Response processMessagePull​(org.apache.activemq.command.MessagePull pull)
                                                                throws Exception
        Specified by:
        processMessagePull in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processMessageDispatchNotification

        public org.apache.activemq.command.Response processMessageDispatchNotification​(org.apache.activemq.command.MessageDispatchNotification notification)
                                                                                throws Exception
        Specified by:
        processMessageDispatchNotification in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processAddDestination

        public org.apache.activemq.command.Response processAddDestination​(org.apache.activemq.command.DestinationInfo info)
                                                                   throws Exception
        Specified by:
        processAddDestination in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processRemoveDestination

        public org.apache.activemq.command.Response processRemoveDestination​(org.apache.activemq.command.DestinationInfo info)
                                                                      throws Exception
        Specified by:
        processRemoveDestination in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processAddProducer

        public org.apache.activemq.command.Response processAddProducer​(org.apache.activemq.command.ProducerInfo info)
                                                                throws Exception
        Specified by:
        processAddProducer in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processRemoveProducer

        public org.apache.activemq.command.Response processRemoveProducer​(org.apache.activemq.command.ProducerId id)
                                                                   throws Exception
        Specified by:
        processRemoveProducer in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processAddConsumer

        public org.apache.activemq.command.Response processAddConsumer​(org.apache.activemq.command.ConsumerInfo info)
                                                                throws Exception
        Specified by:
        processAddConsumer in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processRemoveConsumer

        public org.apache.activemq.command.Response processRemoveConsumer​(org.apache.activemq.command.ConsumerId id,
                                                                          long lastDeliveredSequenceId)
                                                                   throws Exception
        Specified by:
        processRemoveConsumer in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processAddSession

        public org.apache.activemq.command.Response processAddSession​(org.apache.activemq.command.SessionInfo info)
                                                               throws Exception
        Specified by:
        processAddSession in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processRemoveSession

        public org.apache.activemq.command.Response processRemoveSession​(org.apache.activemq.command.SessionId id,
                                                                         long lastDeliveredSequenceId)
                                                                  throws Exception
        Specified by:
        processRemoveSession in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processAddConnection

        public org.apache.activemq.command.Response processAddConnection​(org.apache.activemq.command.ConnectionInfo info)
                                                                  throws Exception
        Specified by:
        processAddConnection in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processRemoveConnection

        public org.apache.activemq.command.Response processRemoveConnection​(org.apache.activemq.command.ConnectionId id,
                                                                            long lastDeliveredSequenceId)
                                                                     throws InterruptedException
        Specified by:
        processRemoveConnection in interface org.apache.activemq.state.CommandVisitor
        Throws:
        InterruptedException
      • processProducerAck

        public org.apache.activemq.command.Response processProducerAck​(org.apache.activemq.command.ProducerAck ack)
                                                                throws Exception
        Specified by:
        processProducerAck in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • dispatchSync

        public void dispatchSync​(org.apache.activemq.command.Command message)
        Description copied from interface: Connection
        Sends a message to the client.
        Specified by:
        dispatchSync in interface Connection
        Parameters:
        message - the message to send to the client.
      • iterate

        public boolean iterate()
        Specified by:
        iterate in interface org.apache.activemq.thread.Task
      • start

        public void start()
                   throws Exception
        Specified by:
        start in interface org.apache.activemq.Service
        Throws:
        Exception
      • stop

        public void stop()
                  throws Exception
        Specified by:
        stop in interface org.apache.activemq.Service
        Throws:
        Exception
      • isBlockedCandidate

        public boolean isBlockedCandidate()
        Returns:
        Returns the blockedCandidate.
      • setBlockedCandidate

        public void setBlockedCandidate​(boolean blockedCandidate)
        Parameters:
        blockedCandidate - The blockedCandidate to set.
      • isMarkedCandidate

        public boolean isMarkedCandidate()
        Returns:
        Returns the markedCandidate.
      • setMarkedCandidate

        public void setMarkedCandidate​(boolean markedCandidate)
        Parameters:
        markedCandidate - The markedCandidate to set.
      • setSlow

        public void setSlow​(boolean slow)
        Parameters:
        slow - The slow to set.
      • isSlow

        public boolean isSlow()
        Specified by:
        isSlow in interface Connection
        Returns:
        true if the Connection is slow
      • isMarkedBlockedCandidate

        public boolean isMarkedBlockedCandidate()
        Returns:
        true if the Connection is potentially blocked
      • doMark

        public void doMark()
        Mark the Connection, so we can deem if it's collectable on the next sweep
      • isBlocked

        public boolean isBlocked()
        Specified by:
        isBlocked in interface Connection
        Returns:
        if after being marked, the Connection is still writing
      • setBlocked

        public void setBlocked​(boolean blocked)
        Parameters:
        blocked - The blocked to set.
      • setConnected

        public void setConnected​(boolean connected)
        Parameters:
        connected - The connected to set.
      • setActive

        public void setActive​(boolean active)
        Parameters:
        active - The active to set.
      • isStarting

        public boolean isStarting()
        Returns:
        true if the Connection is starting
      • isPendingStop

        public boolean isPendingStop()
        Returns:
        true if the Connection needs to stop
      • processBrokerInfo

        public org.apache.activemq.command.Response processBrokerInfo​(org.apache.activemq.command.BrokerInfo info)
        Specified by:
        processBrokerInfo in interface org.apache.activemq.state.CommandVisitor
      • getTransport

        public org.apache.activemq.transport.Transport getTransport()
      • processControlCommand

        public org.apache.activemq.command.Response processControlCommand​(org.apache.activemq.command.ControlCommand command)
                                                                   throws Exception
        Specified by:
        processControlCommand in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processMessageDispatch

        public org.apache.activemq.command.Response processMessageDispatch​(org.apache.activemq.command.MessageDispatch dispatch)
                                                                    throws Exception
        Specified by:
        processMessageDispatch in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processConnectionControl

        public org.apache.activemq.command.Response processConnectionControl​(org.apache.activemq.command.ConnectionControl control)
                                                                      throws Exception
        Specified by:
        processConnectionControl in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processConnectionError

        public org.apache.activemq.command.Response processConnectionError​(org.apache.activemq.command.ConnectionError error)
                                                                    throws Exception
        Specified by:
        processConnectionError in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processConsumerControl

        public org.apache.activemq.command.Response processConsumerControl​(org.apache.activemq.command.ConsumerControl control)
                                                                    throws Exception
        Specified by:
        processConsumerControl in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception
      • processBrokerSubscriptionInfo

        public org.apache.activemq.command.Response processBrokerSubscriptionInfo​(org.apache.activemq.command.BrokerSubscriptionInfo info)
                                                                           throws Exception
        Specified by:
        processBrokerSubscriptionInfo in interface org.apache.activemq.state.CommandVisitor
        Throws:
        Exception