org.apache.activemq.broker
Class TransportConnection
java.lang.Object
org.apache.activemq.broker.TransportConnection
- All Implemented Interfaces:
- Connection, Service, CommandVisitor, Task
- Direct Known Subclasses:
- ManagedTransportConnection
public class TransportConnection
- extends Object
- implements Connection, Task, CommandVisitor
- Version:
- $Revision: 1.8 $
broker
protected final Broker broker
connector
protected final TransportConnector connector
brokerConnectionStates
protected final Map<ConnectionId,ConnectionState> brokerConnectionStates
brokerInfo
protected BrokerInfo brokerInfo
dispatchQueue
protected final List<Command> dispatchQueue
taskRunner
protected TaskRunner taskRunner
transportException
protected final AtomicReference<IOException> transportException
dispatchStopped
protected AtomicBoolean dispatchStopped
TransportConnection
public TransportConnection(TransportConnector connector,
Transport transport,
Broker broker,
TaskRunnerFactory taskRunnerFactory)
- Parameters:
connector - transport - broker - taskRunnerFactory - - can be null if you want direct dispatch to the
transport else commands are sent async.
getDispatchQueueSize
public int getDispatchQueueSize()
- Returns the number of messages to be dispatched to this connection
- Specified by:
getDispatchQueueSize in interface Connection
- Returns:
- size of dispatch queue
serviceTransportException
public void serviceTransportException(IOException e)
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
- Parameters:
e -
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 Response service(Command command)
- Description copied from interface:
Connection
- Services a client command and submits it to the broker.
- Specified by:
service in interface Connection
processKeepAlive
public Response processKeepAlive(KeepAliveInfo info)
throws Exception
- Specified by:
processKeepAlive in interface CommandVisitor
- Throws:
Exception
processRemoveSubscription
public Response processRemoveSubscription(RemoveSubscriptionInfo info)
throws Exception
- Specified by:
processRemoveSubscription in interface CommandVisitor
- Throws:
Exception
processWireFormat
public Response processWireFormat(WireFormatInfo info)
throws Exception
- Specified by:
processWireFormat in interface CommandVisitor
- Throws:
Exception
processShutdown
public Response processShutdown(ShutdownInfo info)
throws Exception
- Specified by:
processShutdown in interface CommandVisitor
- Throws:
Exception
processFlush
public Response processFlush(FlushCommand command)
throws Exception
- Specified by:
processFlush in interface CommandVisitor
- Throws:
Exception
processBeginTransaction
public Response processBeginTransaction(TransactionInfo info)
throws Exception
- Specified by:
processBeginTransaction in interface CommandVisitor
- Throws:
Exception
processEndTransaction
public Response processEndTransaction(TransactionInfo info)
throws Exception
- Specified by:
processEndTransaction in interface CommandVisitor
- Throws:
Exception
processPrepareTransaction
public Response processPrepareTransaction(TransactionInfo info)
throws Exception
- Specified by:
processPrepareTransaction in interface CommandVisitor
- Throws:
Exception
processCommitTransactionOnePhase
public Response processCommitTransactionOnePhase(TransactionInfo info)
throws Exception
- Specified by:
processCommitTransactionOnePhase in interface CommandVisitor
- Throws:
Exception
processCommitTransactionTwoPhase
public Response processCommitTransactionTwoPhase(TransactionInfo info)
throws Exception
- Specified by:
processCommitTransactionTwoPhase in interface CommandVisitor
- Throws:
Exception
processRollbackTransaction
public Response processRollbackTransaction(TransactionInfo info)
throws Exception
- Specified by:
processRollbackTransaction in interface CommandVisitor
- Throws:
Exception
processForgetTransaction
public Response processForgetTransaction(TransactionInfo info)
throws Exception
- Specified by:
processForgetTransaction in interface CommandVisitor
- Throws:
Exception
processRecoverTransactions
public Response processRecoverTransactions(TransactionInfo info)
throws Exception
- Specified by:
processRecoverTransactions in interface CommandVisitor
- Throws:
Exception
processMessage
public Response processMessage(Message messageSend)
throws Exception
- Specified by:
processMessage in interface CommandVisitor
- Throws:
Exception
processMessageAck
public Response processMessageAck(MessageAck ack)
throws Exception
- Specified by:
processMessageAck in interface CommandVisitor
- Throws:
Exception
processMessagePull
public Response processMessagePull(MessagePull pull)
throws Exception
- Specified by:
processMessagePull in interface CommandVisitor
- Throws:
Exception
processMessageDispatchNotification
public Response processMessageDispatchNotification(MessageDispatchNotification notification)
throws Exception
- Specified by:
processMessageDispatchNotification in interface CommandVisitor
- Throws:
Exception
processAddDestination
public Response processAddDestination(DestinationInfo info)
throws Exception
- Specified by:
processAddDestination in interface CommandVisitor
- Throws:
Exception
processRemoveDestination
public Response processRemoveDestination(DestinationInfo info)
throws Exception
- Specified by:
processRemoveDestination in interface CommandVisitor
- Throws:
Exception
processAddProducer
public Response processAddProducer(ProducerInfo info)
throws Exception
- Specified by:
processAddProducer in interface CommandVisitor
- Throws:
Exception
processRemoveProducer
public Response processRemoveProducer(ProducerId id)
throws Exception
- Specified by:
processRemoveProducer in interface CommandVisitor
- Throws:
Exception
processAddConsumer
public Response processAddConsumer(ConsumerInfo info)
throws Exception
- Specified by:
processAddConsumer in interface CommandVisitor
- Throws:
Exception
processRemoveConsumer
public Response processRemoveConsumer(ConsumerId id,
long lastDeliveredSequenceId)
throws Exception
- Specified by:
processRemoveConsumer in interface CommandVisitor
- Throws:
Exception
processAddSession
public Response processAddSession(SessionInfo info)
throws Exception
- Specified by:
processAddSession in interface CommandVisitor
- Throws:
Exception
processRemoveSession
public Response processRemoveSession(SessionId id,
long lastDeliveredSequenceId)
throws Exception
- Specified by:
processRemoveSession in interface CommandVisitor
- Throws:
Exception
processAddConnection
public Response processAddConnection(ConnectionInfo info)
throws Exception
- Specified by:
processAddConnection in interface CommandVisitor
- Throws:
Exception
processRemoveConnection
public Response processRemoveConnection(ConnectionId id,
long lastDeliveredSequenceId)
throws InterruptedException
- Specified by:
processRemoveConnection in interface CommandVisitor
- Throws:
InterruptedException
processProducerAck
public Response processProducerAck(ProducerAck ack)
throws Exception
- Specified by:
processProducerAck in interface CommandVisitor
- Throws:
Exception
getConnector
public Connector getConnector()
- Specified by:
getConnector in interface Connection
- Returns:
- the connector that created this connection.
dispatchSync
public void dispatchSync(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.
dispatchAsync
public void dispatchAsync(Command message)
- Description copied from interface:
Connection
- Sends a message to the client.
- Specified by:
dispatchAsync in interface Connection
processDispatch
protected void processDispatch(Command command)
throws IOException
- Throws:
IOException
iterate
public boolean iterate()
- Specified by:
iterate in interface Task
getStatistics
public ConnectionStatistics getStatistics()
- Returns the statistics for this connection
- Specified by:
getStatistics in interface Connection
getMessageAuthorizationPolicy
public MessageAuthorizationPolicy getMessageAuthorizationPolicy()
setMessageAuthorizationPolicy
public void setMessageAuthorizationPolicy(MessageAuthorizationPolicy messageAuthorizationPolicy)
isManageable
public boolean isManageable()
- Specified by:
isManageable in interface Connection
- Returns:
- true if the Connection will process control commands
start
public void start()
throws Exception
- Specified by:
start in interface Service
- Throws:
Exception
stop
public void stop()
throws Exception
- Specified by:
stop in interface Service
- Throws:
Exception
stopAsync
public void stopAsync()
toString
public String toString()
- Overrides:
toString in class Object
doStop
protected void doStop()
throws Exception,
InterruptedException
- Throws:
Exception
InterruptedException
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
isConnected
public boolean isConnected()
- Specified by:
isConnected in interface Connection
- Returns:
- true if the Connection is connected
setBlocked
public void setBlocked(boolean blocked)
- Parameters:
blocked - The blocked to set.
setConnected
public void setConnected(boolean connected)
- Parameters:
connected - The connected to set.
isActive
public boolean isActive()
- Specified by:
isActive in interface Connection
- Returns:
- true if the Connection is active
setActive
public void setActive(boolean active)
- Parameters:
active - The active to set.
isStarting
public boolean isStarting()
- Returns:
- true if the Connection is starting
isNetworkConnection
public boolean isNetworkConnection()
- Description copied from interface:
Connection
- return true if a network connection
- Specified by:
isNetworkConnection in interface Connection
- Returns:
setStarting
protected void setStarting(boolean starting)
isPendingStop
public boolean isPendingStop()
- Returns:
- true if the Connection needs to stop
setPendingStop
protected void setPendingStop(boolean pendingStop)
processBrokerInfo
public Response processBrokerInfo(BrokerInfo info)
- Specified by:
processBrokerInfo in interface CommandVisitor
dispatch
protected void dispatch(Command command)
throws IOException
- Throws:
IOException
getRemoteAddress
public String getRemoteAddress()
- Specified by:
getRemoteAddress in interface Connection
- Returns:
- the source address for this connection
getConnectionId
public String getConnectionId()
- Specified by:
getConnectionId in interface Connection
getProtocolVersion
public int getProtocolVersion()
processControlCommand
public Response processControlCommand(ControlCommand command)
throws Exception
- Specified by:
processControlCommand in interface CommandVisitor
- Throws:
Exception
processMessageDispatch
public Response processMessageDispatch(MessageDispatch dispatch)
throws Exception
- Specified by:
processMessageDispatch in interface CommandVisitor
- Throws:
Exception
processConnectionControl
public Response processConnectionControl(ConnectionControl control)
throws Exception
- Specified by:
processConnectionControl in interface CommandVisitor
- Throws:
Exception
processConnectionError
public Response processConnectionError(ConnectionError error)
throws Exception
- Specified by:
processConnectionError in interface CommandVisitor
- Throws:
Exception
processConsumerControl
public Response processConsumerControl(ConsumerControl control)
throws Exception
- Specified by:
processConsumerControl in interface CommandVisitor
- Throws:
Exception
registerConnectionState
protected TransportConnectionState registerConnectionState(ConnectionId connectionId,
TransportConnectionState state)
unregisterConnectionState
protected TransportConnectionState unregisterConnectionState(ConnectionId connectionId)
listConnectionStates
protected List<TransportConnectionState> listConnectionStates()
lookupConnectionState
protected TransportConnectionState lookupConnectionState(String connectionId)
lookupConnectionState
protected TransportConnectionState lookupConnectionState(ConsumerId id)
lookupConnectionState
protected TransportConnectionState lookupConnectionState(ProducerId id)
lookupConnectionState
protected TransportConnectionState lookupConnectionState(SessionId id)
lookupConnectionState
protected TransportConnectionState lookupConnectionState(ConnectionId connectionId)
Copyright © 2009. All Rights Reserved.