<div class="wiki-content maincontent"><h1>Dispatch Policies</h1><h2>Dispatch policies for queues</h2><p>Plug-able dispatch policies only apply to topics. For Queues, dispatch is more static, you can choose round robin (the default) or strict order. Before discussing dispatch policies its worth first understanding <link><page ri:content-title="What is the Prefetch Limit For?"></page><plain-text-link-body>the purpose of the prefetch value</plain-text-link-body></link>.</p><p>The out of the box configuration of ActiveMQ is designed for high performance and high throughput messaging where there are lots of messages that need to be dispatched to consumers as quickly as possible. So the default prefetch values are fairly large and the default dispatch policy will try and fill the prefetch buffers as quickly as possible.</p><p>However with messaging there are many use cases and sometimes the default configuration is not ideal to your use case; when you send a small number of messages, they tend to all go to one consumer unless you've lots of messages. If you have a large number of consumers and a relatively high <link><page ri:content-title="What is the Prefetch Limit For?"></page><plain-text-link-body>prefetch value</plain-text-link-body></link> and you have a small number of messages that each message takes quite a while to process then the default dispatch policy might result in increasing the amount of time it takes to process all the messages (since the load balancing is not fair for small numbers of messages).</p><p>For queues, you can define whether the dispatch will occur in a round-robin fashion (default behaviour) or if one consumer's prefetch buffer will be exhausted before the dispatch process selects the next consumer along (strictOrderDispatch).<br clear="none"> The latter behaviour is enabled by setting the "strictOrderDispatch" attribute on the &lt;policyEntry /&gt; element. E.g.:</p><plain-text-body>&lt;policyEntry queue="&gt;" strictOrderDispatch="false" /&gt; </plain-text-body><p>Consumer priorities are observed, so if you have several consumers with different <a shape="rect" href="http://activemq.apache.org/consumer-priority.html">priorities</a>, the one with the highest priority will be flooded first until it can take no more, then the next one along, etc.</p><p>From version 5.14.0 - the&#160;strictOrderDispatch=true option will ensure strict order for redispatched messages when there is a single consumer.&#160;</p><h2>Dispatch policies for Topics</h2><p>There are more options for topics because the dispatch policy is plug-able. Any implementation of org.apache.activemq.broker.region.policy.DispatchPolicy will work.<br clear="none"> The default org.apache.activemq.broker.region.policy.SimpleDispatchPolicy does what one would expect and delivers messages to all subscribers. An example of a more advanced implementation is the org.apache.activemq.broker.region.policy.PriorityNetworkDispatchPolicy which will only dispatch to the highest priority network consumer. This is useful in a loop network topology where there is more than route to a consumer.</p><p>Here is an <a shape="rect" href="http://svn.apache.org/repos/asf/activemq/trunk/activemq-unit-tests/src/test/resources/org/apache/activemq/xbean/activemq-policy.xml">example of destination policy configuration</a>.</p><parameter ac:name="">xml</parameter><plain-text-body>&lt;destinationPolicy&gt;
  &lt;policyMap&gt;
	&lt;policyEntries&gt;
	  &lt;policyEntry topic="FOO.&gt;"&gt;
		&lt;dispatchPolicy&gt;
		  &lt;roundRobinDispatchPolicy /&gt;
		&lt;/dispatchPolicy&gt;
		&lt;subscriptionRecoveryPolicy&gt;
		  &lt;lastImageSubscriptionRecoveryPolicy /&gt;
		&lt;/subscriptionRecoveryPolicy&gt;
	  &lt;/policyEntry&gt;
	  &lt;policyEntry topic="ORDERS.&gt;"&gt;
		&lt;dispatchPolicy&gt;
		  &lt;strictOrderDispatchPolicy /&gt;
		&lt;/dispatchPolicy&gt;
		&lt;!--  1 minutes worth --&gt;
		&lt;subscriptionRecoveryPolicy&gt;
		  &lt;timedSubscriptionRecoveryPolicy recoverDuration="60000" /&gt;
		&lt;/subscriptionRecoveryPolicy&gt;
	  &lt;/policyEntry&gt;
	  &lt;policyEntry topic="PRICES.&gt;"&gt;
		&lt;!-- lets force old messages to be discarded for slow consumers --&gt;
		&lt;pendingMessageLimitStrategy&gt;
		  &lt;constantPendingMessageLimitStrategy limit="10"/&gt;
		&lt;/pendingMessageLimitStrategy&gt;
		&lt;!--  10 seconds worth --&gt;
		&lt;subscriptionRecoveryPolicy&gt;
		  &lt;timedSubscriptionRecoveryPolicy recoverDuration="10000" /&gt;
		&lt;/subscriptionRecoveryPolicy&gt;
		
	  &lt;/policyEntry&gt;
	  &lt;policyEntry tempTopic="true" advisoryForConsumed="true" /&gt;
	  &lt;policyEntry tempQueue="true" advisoryForConsumed="true" /&gt;
	&lt;/policyEntries&gt;
  &lt;/policyMap&gt;
&lt;/destinationPolicy&gt;</plain-text-body></div>

