org.apache.activemq.broker.region.policy
Class PriorityNetworkDispatchPolicy

java.lang.Object
  extended by org.apache.activemq.broker.region.policy.SimpleDispatchPolicy
      extended by org.apache.activemq.broker.region.policy.PriorityNetworkDispatchPolicy
All Implemented Interfaces:
DispatchPolicy

public class PriorityNetworkDispatchPolicy
extends SimpleDispatchPolicy

dispatch policy that ignores lower priority duplicate network consumers, used in conjunction with network bridge suppresDuplicateTopicSubscriptions


Constructor Summary
PriorityNetworkDispatchPolicy()
           
 
Method Summary
 boolean dispatch(MessageReference node, MessageEvaluationContext msgContext, java.util.List<Subscription> consumers)
          Decides how to dispatch a selected message to a collection of consumers.
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

PriorityNetworkDispatchPolicy

public PriorityNetworkDispatchPolicy()
Method Detail

dispatch

public boolean dispatch(MessageReference node,
                        MessageEvaluationContext msgContext,
                        java.util.List<Subscription> consumers)
                 throws java.lang.Exception
Description copied from interface: DispatchPolicy
Decides how to dispatch a selected message to a collection of consumers. A safe approach is to dispatch to every subscription that matches. Queue Subscriptions that have not exceeded their pre-fetch limit will attempt to lock the message before dispatching to the client. First subscription to lock the message wins. Order of dispatching to the subscriptions matters since a subscription with a large pre-fetch may take all the messages if he is always dispatched to first. Once a message has been locked, it does not need to be dispatched to any further subscriptions. The list will be safe to iterate over when this method is called

Specified by:
dispatch in interface DispatchPolicy
Overrides:
dispatch in class SimpleDispatchPolicy
Returns:
true if at least one consumer was dispatched or false if there are no active subscriptions that could be dispatched
Throws:
java.lang.Exception


Copyright © 2005-2012. All Rights Reserved.