Class RegionBroker

java.lang.Object
org.apache.activemq.broker.EmptyBroker
org.apache.activemq.broker.region.RegionBroker
All Implemented Interfaces:
Broker, Region, org.apache.activemq.Service
Direct Known Subclasses:
ManagedRegionBroker

public class RegionBroker extends EmptyBroker
Routes Broker operations to the correct messaging regions for processing.
  • Field Details

    • ORIGINAL_EXPIRATION

      public static final String ORIGINAL_EXPIRATION
      See Also:
    • destinationStatistics

      protected final DestinationStatistics destinationStatistics
    • destinationFactory

      protected DestinationFactory destinationFactory
    • connectionStates

      protected final Map<org.apache.activemq.command.ConnectionId,org.apache.activemq.state.ConnectionState> connectionStates
    • brokerService

      protected final BrokerService brokerService
  • Constructor Details

  • Method Details

    • getDestinationMap

      public Map<org.apache.activemq.command.ActiveMQDestination,Destination> getDestinationMap()
      Description copied from interface: Region
      Returns a reference to the concurrent hash map that holds known destinations, do not modify
      Specified by:
      getDestinationMap in interface Region
      Overrides:
      getDestinationMap in class EmptyBroker
    • getDestinationMap

      public Map<org.apache.activemq.command.ActiveMQDestination,Destination> getDestinationMap(org.apache.activemq.command.ActiveMQDestination destination)
      Description copied from interface: Broker
      return a reference destination map of a region based on the destination type
      Specified by:
      getDestinationMap in interface Broker
      Overrides:
      getDestinationMap in class EmptyBroker
      Returns:
      destination Map
    • getDestinations

      public Set<Destination> getDestinations(org.apache.activemq.command.ActiveMQDestination destination)
      Description copied from interface: Region
      Provide an exact or wildcard lookup of destinations in the region
      Specified by:
      getDestinations in interface Region
      Overrides:
      getDestinations in class EmptyBroker
      Returns:
      a set of matching destination objects.
    • getQueueRegion

      public Region getQueueRegion()
    • getTempQueueRegion

      public Region getTempQueueRegion()
    • getTempTopicRegion

      public Region getTempTopicRegion()
    • getTopicRegion

      public Region getTopicRegion()
    • createTempTopicRegion

      protected Region createTempTopicRegion(SystemUsage memoryManager, org.apache.activemq.thread.TaskRunnerFactory taskRunnerFactory, DestinationFactory destinationFactory)
    • createTempQueueRegion

      protected Region createTempQueueRegion(SystemUsage memoryManager, org.apache.activemq.thread.TaskRunnerFactory taskRunnerFactory, DestinationFactory destinationFactory)
    • createTopicRegion

      protected Region createTopicRegion(SystemUsage memoryManager, org.apache.activemq.thread.TaskRunnerFactory taskRunnerFactory, DestinationFactory destinationFactory)
    • createQueueRegion

      protected Region createQueueRegion(SystemUsage memoryManager, org.apache.activemq.thread.TaskRunnerFactory taskRunnerFactory, DestinationFactory destinationFactory)
    • start

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

      public void stop() throws Exception
      Specified by:
      stop in interface org.apache.activemq.Service
      Overrides:
      stop in class EmptyBroker
      Throws:
      Exception
    • getDestinationPolicy

      public PolicyMap getDestinationPolicy()
    • getConnectionContext

      public ConnectionContext getConnectionContext(String clientId)
    • addConnection

      public void addConnection(ConnectionContext context, org.apache.activemq.command.ConnectionInfo info) throws Exception
      Description copied from interface: Broker
      A client is establishing a connection with the broker.
      Specified by:
      addConnection in interface Broker
      Overrides:
      addConnection in class EmptyBroker
      Throws:
      Exception - TODO
    • removeConnection

      public void removeConnection(ConnectionContext context, org.apache.activemq.command.ConnectionInfo info, Throwable error) throws Exception
      Description copied from interface: Broker
      A client is disconnecting from the broker.
      Specified by:
      removeConnection in interface Broker
      Overrides:
      removeConnection in class EmptyBroker
      Parameters:
      context - the environment the operation is being executed under.
      error - null if the client requested the disconnect or the error that caused the client to disconnect.
      Throws:
      Exception - TODO
    • isEqual

      protected boolean isEqual(org.apache.activemq.command.ConnectionId connectionId, org.apache.activemq.command.ConnectionId connectionId2)
    • getClients

      public Connection[] getClients() throws Exception
      Specified by:
      getClients in interface Broker
      Overrides:
      getClients in class EmptyBroker
      Returns:
      all clients added to the Broker.
      Throws:
      Exception - TODO
    • addDestination

      public Destination addDestination(ConnectionContext context, org.apache.activemq.command.ActiveMQDestination destination, boolean createIfTemp) throws Exception
      Description copied from interface: Region
      Used to create a destination. Usually, this method is invoked as a side-effect of sending a message to a destination that does not exist yet.
      Specified by:
      addDestination in interface Region
      Overrides:
      addDestination in class EmptyBroker
      destination - the destination to create.
      Returns:
      TODO
      Throws:
      Exception - TODO
    • removeDestination

      public void removeDestination(ConnectionContext context, org.apache.activemq.command.ActiveMQDestination destination, long timeout) throws Exception
      Description copied from interface: Region
      Used to destroy a destination. This should try to quiesce use of the destination up to the timeout allotted time before removing the destination. This will remove all persistent messages associated with the destination.
      Specified by:
      removeDestination in interface Region
      Overrides:
      removeDestination in class EmptyBroker
      Parameters:
      context - the environment the operation is being executed under.
      destination - what is being removed from the broker.
      timeout - the max amount of time to wait for the destination to quiesce
      Throws:
      Exception - TODO
    • addDestinationInfo

      public void addDestinationInfo(ConnectionContext context, org.apache.activemq.command.DestinationInfo info) throws Exception
      Description copied from interface: Broker
      Add and process a DestinationInfo object
      Specified by:
      addDestinationInfo in interface Broker
      Overrides:
      addDestinationInfo in class EmptyBroker
      Throws:
      Exception
    • removeDestinationInfo

      public void removeDestinationInfo(ConnectionContext context, org.apache.activemq.command.DestinationInfo info) throws Exception
      Description copied from interface: Broker
      Remove and process a DestinationInfo object
      Specified by:
      removeDestinationInfo in interface Broker
      Overrides:
      removeDestinationInfo in class EmptyBroker
      Throws:
      Exception
    • getDestinations

      public org.apache.activemq.command.ActiveMQDestination[] getDestinations() throws Exception
      Specified by:
      getDestinations in interface Broker
      Overrides:
      getDestinations in class EmptyBroker
      Returns:
      all destinations added to the Broker.
      Throws:
      Exception - TODO
    • addProducer

      public void addProducer(ConnectionContext context, org.apache.activemq.command.ProducerInfo info) throws Exception
      Description copied from interface: Broker
      Adds a producer.
      Specified by:
      addProducer in interface Broker
      Specified by:
      addProducer in interface Region
      Overrides:
      addProducer in class EmptyBroker
      Parameters:
      context - the environment the operation is being executed under.
      Throws:
      Exception - TODO
    • removeProducer

      public void removeProducer(ConnectionContext context, org.apache.activemq.command.ProducerInfo info) throws Exception
      Description copied from interface: Broker
      Removes a producer.
      Specified by:
      removeProducer in interface Broker
      Specified by:
      removeProducer in interface Region
      Overrides:
      removeProducer in class EmptyBroker
      Parameters:
      context - the environment the operation is being executed under.
      Throws:
      Exception - TODO
    • addConsumer

      public Subscription addConsumer(ConnectionContext context, org.apache.activemq.command.ConsumerInfo info) throws Exception
      Description copied from interface: Region
      Adds a consumer.
      Specified by:
      addConsumer in interface Region
      Overrides:
      addConsumer in class EmptyBroker
      Parameters:
      context - the environment the operation is being executed under.
      Returns:
      TODO
      Throws:
      Exception - TODO
    • removeConsumer

      public void removeConsumer(ConnectionContext context, org.apache.activemq.command.ConsumerInfo info) throws Exception
      Description copied from interface: Region
      Removes a consumer.
      Specified by:
      removeConsumer in interface Region
      Overrides:
      removeConsumer in class EmptyBroker
      Parameters:
      context - the environment the operation is being executed under.
      Throws:
      Exception - TODO
    • removeSubscription

      public void removeSubscription(ConnectionContext context, org.apache.activemq.command.RemoveSubscriptionInfo info) throws Exception
      Description copied from interface: Region
      Deletes a durable subscription.
      Specified by:
      removeSubscription in interface Region
      Overrides:
      removeSubscription in class EmptyBroker
      Parameters:
      context - the environment the operation is being executed under.
      info - TODO
      Throws:
      Exception - TODO
    • send

      public void send(ProducerBrokerExchange producerExchange, org.apache.activemq.command.Message message) throws Exception
      Description copied from interface: Region
      Send a message to the broker to using the specified destination. The destination specified in the message does not need to match the destination the message is sent to. This is handy in case the message is being sent to a dead letter destination.
      Specified by:
      send in interface Region
      Overrides:
      send in class EmptyBroker
      Parameters:
      producerExchange - the environment the operation is being executed under.
      Throws:
      Exception - TODO
    • acknowledge

      public void acknowledge(ConsumerBrokerExchange consumerExchange, org.apache.activemq.command.MessageAck ack) throws Exception
      Description copied from interface: Region
      Used to acknowledge the receipt of a message by a client.
      Specified by:
      acknowledge in interface Region
      Overrides:
      acknowledge in class EmptyBroker
      Parameters:
      consumerExchange - the environment the operation is being executed under.
      Throws:
      Exception - TODO
    • getRegion

      public Region getRegion(org.apache.activemq.command.ActiveMQDestination destination) throws jakarta.jms.JMSException
      Throws:
      jakarta.jms.JMSException
    • messagePull

      public org.apache.activemq.command.Response messagePull(ConnectionContext context, org.apache.activemq.command.MessagePull pull) throws Exception
      Description copied from interface: Region
      Allows a consumer to pull a message from a queue
      Specified by:
      messagePull in interface Region
      Overrides:
      messagePull in class EmptyBroker
      Throws:
      Exception
    • getPreparedTransactions

      public org.apache.activemq.command.TransactionId[] getPreparedTransactions(ConnectionContext context) throws Exception
      Description copied from interface: Broker
      Gets a list of all the prepared xa transactions.
      Specified by:
      getPreparedTransactions in interface Broker
      Overrides:
      getPreparedTransactions in class EmptyBroker
      Parameters:
      context - transaction ids
      Returns:
      array of TransactionId values
      Throws:
      Exception - TODO
    • beginTransaction

      public void beginTransaction(ConnectionContext context, org.apache.activemq.command.TransactionId xid) throws Exception
      Description copied from interface: Broker
      Starts a transaction.
      Specified by:
      beginTransaction in interface Broker
      Overrides:
      beginTransaction in class EmptyBroker
      Throws:
      Exception - TODO
    • prepareTransaction

      public int prepareTransaction(ConnectionContext context, org.apache.activemq.command.TransactionId xid) throws Exception
      Description copied from interface: Broker
      Prepares a transaction. Only valid for xa transactions.
      Specified by:
      prepareTransaction in interface Broker
      Overrides:
      prepareTransaction in class EmptyBroker
      Returns:
      id
      Throws:
      Exception - TODO
    • rollbackTransaction

      public void rollbackTransaction(ConnectionContext context, org.apache.activemq.command.TransactionId xid) throws Exception
      Description copied from interface: Broker
      Rollsback a transaction.
      Specified by:
      rollbackTransaction in interface Broker
      Overrides:
      rollbackTransaction in class EmptyBroker
      Throws:
      Exception - TODO
    • commitTransaction

      public void commitTransaction(ConnectionContext context, org.apache.activemq.command.TransactionId xid, boolean onePhase) throws Exception
      Description copied from interface: Broker
      Commits a transaction.
      Specified by:
      commitTransaction in interface Broker
      Overrides:
      commitTransaction in class EmptyBroker
      Throws:
      Exception - TODO
    • forgetTransaction

      public void forgetTransaction(ConnectionContext context, org.apache.activemq.command.TransactionId transactionId) throws Exception
      Description copied from interface: Broker
      Forgets a transaction.
      Specified by:
      forgetTransaction in interface Broker
      Overrides:
      forgetTransaction in class EmptyBroker
      Throws:
      Exception
    • gc

      public void gc()
      Specified by:
      gc in interface Region
      Overrides:
      gc in class EmptyBroker
    • getBrokerId

      public org.apache.activemq.command.BrokerId getBrokerId()
      Description copied from interface: Broker
      Get the id of the broker
      Specified by:
      getBrokerId in interface Broker
      Overrides:
      getBrokerId in class EmptyBroker
    • setBrokerId

      public void setBrokerId(org.apache.activemq.command.BrokerId brokerId)
    • getBrokerName

      public String getBrokerName()
      Description copied from interface: Broker
      Get the name of the broker
      Specified by:
      getBrokerName in interface Broker
      Overrides:
      getBrokerName in class EmptyBroker
    • setBrokerName

      public void setBrokerName(String brokerName)
    • getDestinationStatistics

      public DestinationStatistics getDestinationStatistics()
    • createUnknownDestinationTypeException

      protected jakarta.jms.JMSException createUnknownDestinationTypeException(org.apache.activemq.command.ActiveMQDestination destination)
    • addBroker

      public void addBroker(Connection connection, org.apache.activemq.command.BrokerInfo info)
      Description copied from interface: Broker
      A remote Broker connects
      Specified by:
      addBroker in interface Broker
      Overrides:
      addBroker in class EmptyBroker
    • removeBroker

      public void removeBroker(Connection connection, org.apache.activemq.command.BrokerInfo info)
      Description copied from interface: Broker
      Remove a BrokerInfo
      Specified by:
      removeBroker in interface Broker
      Overrides:
      removeBroker in class EmptyBroker
    • getPeerBrokerInfos

      public org.apache.activemq.command.BrokerInfo[] getPeerBrokerInfos()
      Description copied from interface: Broker
      Get the BrokerInfo's of any connected Brokers
      Specified by:
      getPeerBrokerInfos in interface Broker
      Overrides:
      getPeerBrokerInfos in class EmptyBroker
      Returns:
      array of peer BrokerInfos
    • preProcessDispatch

      public void preProcessDispatch(org.apache.activemq.command.MessageDispatch messageDispatch)
      Description copied from interface: Broker
      Notify the Broker that a dispatch is going to happen
      Specified by:
      preProcessDispatch in interface Broker
      Overrides:
      preProcessDispatch in class EmptyBroker
    • postProcessDispatch

      public void postProcessDispatch(org.apache.activemq.command.MessageDispatch messageDispatch)
      Description copied from interface: Broker
      Notify the Broker that a dispatch has happened
      Specified by:
      postProcessDispatch in interface Broker
      Overrides:
      postProcessDispatch in class EmptyBroker
    • processDispatchNotification

      public void processDispatchNotification(org.apache.activemq.command.MessageDispatchNotification messageDispatchNotification) throws Exception
      Description copied from interface: Region
      Process a notification of a dispatch - used by a Slave Broker
      Specified by:
      processDispatchNotification in interface Region
      Overrides:
      processDispatchNotification in class EmptyBroker
      Throws:
      Exception - TODO
    • isStopped

      public boolean isStopped()
      Specified by:
      isStopped in interface Broker
      Overrides:
      isStopped in class EmptyBroker
      Returns:
      true if the broker has stopped
    • getDurableDestinations

      public Set<org.apache.activemq.command.ActiveMQDestination> getDurableDestinations()
      Specified by:
      getDurableDestinations in interface Broker
      Overrides:
      getDurableDestinations in class EmptyBroker
      Returns:
      a Set of all durable destinations
    • doStop

      protected void doStop(org.apache.activemq.util.ServiceStopper ss)
    • isKeepDurableSubsActive

      public boolean isKeepDurableSubsActive()
    • setKeepDurableSubsActive

      public void setKeepDurableSubsActive(boolean keepDurableSubsActive)
    • getDestinationInterceptor

      public DestinationInterceptor getDestinationInterceptor()
    • getAdminConnectionContext

      public ConnectionContext getAdminConnectionContext()
      Specified by:
      getAdminConnectionContext in interface Broker
      Overrides:
      getAdminConnectionContext in class EmptyBroker
      Returns:
      the connection context used to make administration operations on startup or via JMX MBeans
    • setAdminConnectionContext

      public void setAdminConnectionContext(ConnectionContext adminConnectionContext)
      Description copied from interface: Broker
      Sets the default administration connection context used when configuring the broker on startup or via JMX
      Specified by:
      setAdminConnectionContext in interface Broker
      Overrides:
      setAdminConnectionContext in class EmptyBroker
    • getConnectionStates

      public Map<org.apache.activemq.command.ConnectionId,org.apache.activemq.state.ConnectionState> getConnectionStates()
    • getTempDataStore

      public PListStore getTempDataStore()
      Specified by:
      getTempDataStore in interface Broker
      Overrides:
      getTempDataStore in class EmptyBroker
      Returns:
      the temp data store
    • getVmConnectorURI

      public URI getVmConnectorURI()
      Specified by:
      getVmConnectorURI in interface Broker
      Overrides:
      getVmConnectorURI in class EmptyBroker
      Returns:
      the URI that can be used to connect to the local Broker
    • brokerServiceStarted

      public void brokerServiceStarted()
      Description copied from interface: Broker
      called when the brokerService starts
      Specified by:
      brokerServiceStarted in interface Broker
      Overrides:
      brokerServiceStarted in class EmptyBroker
    • getBrokerService

      public BrokerService getBrokerService()
      Specified by:
      getBrokerService in interface Broker
      Overrides:
      getBrokerService in class EmptyBroker
      Returns:
      the BrokerService
    • isExpired

      public boolean isExpired(org.apache.activemq.broker.region.MessageReference messageReference)
      Description copied from interface: Broker
      Determine if a message has expired -allows default behaviour to be overriden - as the timestamp set by the producer can be out of sync with the broker
      Specified by:
      isExpired in interface Broker
      Overrides:
      isExpired in class EmptyBroker
      Returns:
      true if the message is expired
    • messageExpired

      public void messageExpired(ConnectionContext context, org.apache.activemq.broker.region.MessageReference node, Subscription subscription)
      Description copied from interface: Broker
      A Message has Expired
      Specified by:
      messageExpired in interface Broker
      Overrides:
      messageExpired in class EmptyBroker
      subscription - (may be null)
    • sendToDeadLetterQueue

      public boolean sendToDeadLetterQueue(ConnectionContext context, org.apache.activemq.broker.region.MessageReference node, Subscription subscription, Throwable poisonCause)
      Description copied from interface: Broker
      A message needs to go the a DLQ
      Specified by:
      sendToDeadLetterQueue in interface Broker
      Overrides:
      sendToDeadLetterQueue in class EmptyBroker
      poisonCause - reason for dlq submission, may be null
      Returns:
      true if Message was placed in a DLQ false if discarded.
    • getRoot

      public Broker getRoot()
      Description copied from interface: Broker
      Ensure we get the Broker at the top of the Stack
      Specified by:
      getRoot in interface Broker
      Overrides:
      getRoot in class EmptyBroker
      Returns:
      the broker at the top of the Stack
    • getBrokerSequenceId

      public long getBrokerSequenceId()
      Specified by:
      getBrokerSequenceId in interface Broker
      Overrides:
      getBrokerSequenceId in class EmptyBroker
      Returns:
      the broker sequence id
    • getScheduler

      public org.apache.activemq.thread.Scheduler getScheduler()
      Specified by:
      getScheduler in interface Broker
      Overrides:
      getScheduler in class EmptyBroker
    • getExecutor

      public ThreadPoolExecutor getExecutor()
      Specified by:
      getExecutor in interface Broker
      Overrides:
      getExecutor in class EmptyBroker
    • processConsumerControl

      public void processConsumerControl(ConsumerBrokerExchange consumerExchange, org.apache.activemq.command.ConsumerControl control)
      Specified by:
      processConsumerControl in interface Region
      Overrides:
      processConsumerControl in class EmptyBroker
    • addBrokerInClusterUpdate

      protected void addBrokerInClusterUpdate(org.apache.activemq.command.BrokerInfo info)
    • removeBrokerInClusterUpdate

      protected void removeBrokerInClusterUpdate(org.apache.activemq.command.BrokerInfo info)
    • purgeInactiveDestinations

      protected void purgeInactiveDestinations()
    • isAllowTempAutoCreationOnSend

      public boolean isAllowTempAutoCreationOnSend()
    • setAllowTempAutoCreationOnSend

      public void setAllowTempAutoCreationOnSend(boolean allowTempAutoCreationOnSend)
    • reapplyInterceptor

      public void reapplyInterceptor()
      Specified by:
      reapplyInterceptor in interface Region
      Overrides:
      reapplyInterceptor in class EmptyBroker