org.apache.activemq.broker.region.policy
Interface DispatchPolicy
- All Known Implementing Classes:
- RoundRobinDispatchPolicy, SimpleDispatchPolicy, StrictOrderDispatchPolicy
public interface DispatchPolicy
Abstraction to allow different dispatching policies to be plugged
into the region implementations. This is used by a queue to deliver
messages to the matching subscriptions.
- Version:
- $Revision$
dispatch
boolean dispatch(MessageReference node,
MessageEvaluationContext msgContext,
List<Subscription> consumers)
throws Exception
- 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.
- Returns:
- true if at least one consumer was dispatched or false if there are no active subscriptions that could be dispatched
- Throws:
Exception
Copyright © 2005-2011 Apache Software Foundation. All Rights Reserved.