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

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

public class RoundRobinDispatchPolicy
extends Object
implements DispatchPolicy

Simple dispatch policy that sends a message to every subscription that matches the message.

Version:
$Revision$

Constructor Summary
RoundRobinDispatchPolicy()
           
 
Method Summary
 boolean dispatch(MessageReference node, MessageEvaluationContext msgContext, 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

RoundRobinDispatchPolicy

public RoundRobinDispatchPolicy()
Method Detail

dispatch

public boolean dispatch(MessageReference node,
                        MessageEvaluationContext msgContext,
                        List<Subscription> consumers)
                 throws 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.

Specified by:
dispatch in interface DispatchPolicy
Parameters:
node -
msgContext -
consumers -
Returns:
true if dispatched
Throws:
Exception
See Also:
DispatchPolicy.dispatch(org.apache.activemq.broker.region.MessageReference, org.apache.activemq.filter.MessageEvaluationContext, java.util.List)


Copyright © 2005-2011 Apache Software Foundation. All Rights Reserved.