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
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,
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.
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
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
- Returns:
- Response
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
delayedStop
public void delayedStop(int waitTime,
String reason,
Throwable cause)
stopAsync
public void stopAsync()
toString
public String toString()
- Overrides:
toString in class Object
doStop
protected void doStop()
throws Exception
- 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
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:
isFaultTolerantConnection
public boolean isFaultTolerantConnection()
- Specified by:
isFaultTolerantConnection in interface Connection
- Returns:
- true if a fault tolerant connection
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
updateClient
public void updateClient(ConnectionControl control)
- Specified by:
updateClient 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)
setDuplexNetworkConnectorId
protected void setDuplexNetworkConnectorId(String duplexNetworkConnectorId)
getDuplexNetworkConnectorId
protected String getDuplexNetworkConnectorId()
isStopping
public boolean isStopping()
getStopped
protected CountDownLatch getStopped()
Copyright © 2005-2013 The Apache Software Foundation. All Rights Reserved.