org.apache.activemq.broker.region.policy
Class RoundRobinDispatchPolicy
java.lang.Object
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$
Methods inherited from class java.lang.Object |
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait |
RoundRobinDispatchPolicy
public RoundRobinDispatchPolicy()
dispatch
public boolean dispatch(ConnectionContext newParam,
MessageReference node,
MessageEvaluationContext msgContext,
List 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
- Returns:
- true if at least one consumer was dispatched or false if there are no active subscriptions that could be dispatched
- Throws:
Exception
Copyright © 2011 Apache Software Foundation. All Rights Reserved.