java.lang.Object
org.apache.activemq.artemis.core.server.cluster.impl.Redistributor
All Implemented Interfaces:
PriorityAware, Consumer

public class Redistributor extends Object implements Consumer
  • Constructor Details

    • Redistributor

      public Redistributor(Queue queue, long sequentialID, PostOffice postOffice)
  • Method Details

    • sequentialID

      public long sequentialID()
      Description copied from interface: Consumer
      an unique sequential ID for this consumer
      Specified by:
      sequentialID in interface Consumer
    • getFilter

      public Filter getFilter()
      Specified by:
      getFilter in interface Consumer
    • debug

      public String debug()
      Specified by:
      debug in interface Consumer
    • toManagementString

      public String toManagementString()
      Description copied from interface: Consumer
      This method will create a string representation meant for management operations. This is different from the toString method that's meant for debugging and will contain information that regular users won't understand well
      Specified by:
      toManagementString in interface Consumer
    • disconnect

      public void disconnect()
      Description copied from interface: Consumer
      disconnect the consumer
      Specified by:
      disconnect in interface Consumer
    • start

      public void start()
    • stop

      public void stop() throws Exception
      Throws:
      Exception
    • close

      public void close()
    • handle

      public HandleStatus handle(MessageReference reference) throws Exception
      Description copied from interface: Consumer
      There was a change on semantic during 2.3 here.

      We now first accept the message, and the actual deliver is done as part of Consumer.proceedDeliver(MessageReference). This is to avoid holding a lock on the queues while the delivery is being accomplished To avoid a lock on the queue in case of misbehaving consumers.

      This should return busy if handle is called before proceed deliver is called

      Specified by:
      handle in interface Consumer
      Throws:
      Exception
    • proceedDeliver

      public void proceedDeliver(MessageReference ref)
      Description copied from interface: Consumer
      This will proceed with the actual delivery. Notice that handle should hold a readLock and proceedDelivery should release the readLock any lock operation on Consumer should also get a writeLock on the readWriteLock to guarantee there are no pending deliveries
      Specified by:
      proceedDeliver in interface Consumer
    • failed

      public void failed(Throwable t)
      Specified by:
      failed in interface Consumer
    • getDeliveringMessages

      public List<MessageReference> getDeliveringMessages()
      Specified by:
      getDeliveringMessages in interface Consumer