You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@activemq.apache.org by bu...@apache.org on 2015/09/07 16:21:12 UTC

svn commit: r964641 - in /websites/production/activemq/content: cache/main.pageCache per-destination-policies.html

Author: buildbot
Date: Mon Sep  7 14:21:12 2015
New Revision: 964641

Log:
Production update by buildbot for activemq

Modified:
    websites/production/activemq/content/cache/main.pageCache
    websites/production/activemq/content/per-destination-policies.html

Modified: websites/production/activemq/content/cache/main.pageCache
==============================================================================
Binary files - no diff available.

Modified: websites/production/activemq/content/per-destination-policies.html
==============================================================================
--- websites/production/activemq/content/per-destination-policies.html (original)
+++ websites/production/activemq/content/per-destination-policies.html Mon Sep  7 14:21:12 2015
@@ -83,7 +83,7 @@
   <tbody>
         <tr>
         <td valign="top" width="100%">
-<div class="wiki-content maincontent"><p>We support a number of different policies which can be attached to individual destinations (queues, topics) or to wildcards of queue/topic hierarchies. This makes it easy to configure how different regions of the JMS destination space are handled.</p><p>The properties you can set on a Destination are as follows:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Common property</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>producerFlowControl</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the producer will slow down and eventually block if no resources(e.g. memory) are available on the broker. If this is off messages get off-lined to dis
 k to prevent memory exhaustion</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>enableAudit</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>tracks duplicate messages (which can occur in failover for non-persistent messages)</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>useCache</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>persistent messages are cached for fast retrieval from store</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>maxPageSize</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>200</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>maximum number of persistent messages to page from store at a time</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>maxBrowsePageSize</p></td><td colspan="1" rowspan="1" class="confluence
 Td"><p>400</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>maximum number of persistent messages to page from store for a browser</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>memoryLimit</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>n/a</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The memory limit for a given destination. This acts as a child to the overall broker memory specified by the <a shape="rect" href="producer-flow-control.html"><code>&lt;systemUsage&gt;</code>'s <code>memoryLimit</code> attribute</a>. There is no default for this value; it simply acts as a child to the overall broker memory until the broker memory is exhausted.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>minimumMessageSize</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>1024</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>for non-serialized messages (embedded broker) - the assumed size of the me
 ssage used for memory usage calculation. Serialized messages used the serialized size as the basis for the memory calculation</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>cursorMemoryHighWaterMark</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>70</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the percentage (%) tipping point at which a system memory limit will cause a cursor to block or spool to disk</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>storeUsageHighWaterMark</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>100</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the percentage (%) tipping point at which a system usage store limit will cause a sent to block</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>prioritizedMessages</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>have the store 
 respect message priority</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>advisoryForConsumed</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>send an advisory message when a message is consumed by a client</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>advisoryForDelivery</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>send an advisory message when a message is sent to a client</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>advisoryForSlowConsumers</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>send an advisory message if a consumer is deemed slow</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>advsioryForFastProducers</p></td><td colspan="1" rowspan="1" class="conflue
 nceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>send an advisory message if a producer is deemed fast</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>advisoryWhenFull</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>send an advisory message when a limit (memory,store,temp disk) is full</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>includeBodyForAdvisory</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>includes the body of the original message that triggered the advisory as part of the dataStructure field in the advisory message (when applicable). Normally the message body is cleared.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>gcInactiveDestinations</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1
 " rowspan="1" class="confluenceTd"><p>delete inactive destination</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>inactiveTimoutBeforeGC</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>5000</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>inactivity period (in ms) before destination is considered inactive</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span>usePrefetchExtension</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the prefetch extension is used when a&#160;message is delivered but not acked, such that the broker can dispatch&#160;another message (e.g., prefetch == 0), the idea being that there will always be prefetch num&#160;messages pending. It also allows a transaction batch to exceed the prefetch&#160;value.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>slowConsumerStrategy</p></td><td colspan="1" 
 rowspan="1" class="confluenceTd"><p>null</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>sets the strategy for handling slow consumers. see <a shape="rect" class="external-link" href="http://svn.apache.org/repos/asf/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/policy/AbortSlowConsumerStrategy.java">abortSlowConsumerStrategy</a></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>maxDestinations</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>-1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>(v5.12) if 0 or greater, sets the maximum number of destinations that can be created. This is useful to limit the number of hierarchical destinations that can be created under a wildcard destination.</p></td></tr></tbody></table></div><p>Additional properties for a Queue</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Queue only property</p
 ></th><th colspan="1" rowspan="1" class="confluenceTh"><p>default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>useConsumerPriority</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>use the priority of a consumer when dispatching messages from a Queue</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>strictOrderDispatch</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>if true queue will not round robin consumers, but it'll use a single one until its prefetch buffer is full</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>optimizedDispatch</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>don't use a separate thread for dispatch
 ing from a Queue</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>lazyDispatch</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>only page in from store the number of messages that can be dispatched at time</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>consumersBeforeDispatchStarts</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>when the first consumer connects, wait for specified number of consumers before message dispatching starts</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>timeBeforeDispatchStarts</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>when the first consumer connects, wait for specified time (in ms) before message dispatching starts</p></td></tr><tr><td colspan="1" rowspan="1" class
 ="confluenceTd"><p>queuePrefetch</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>n/a</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>sets the prefetch for consumers that are using the default value</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>expireMessagesPeriod</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>30000</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the period (in ms) of checks for message expiry on queued messages, value of 0 disables</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>persistJMSRedelivered</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>(v 5.10) if true, before a persistent message is dispatched by the broker for the first time, the message is rewritten to reflect the possible delivery.</p><p>This ensures the message JMSRedelivered header is a reliable indication of possible duplicate d
 elivery.</p></td></tr></tbody></table></div><p>Additional properties for a Topic</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Topic only property</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>topicPrefetch</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>n/a</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>sets the prefetch for topic consumers that are using the default value</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>durableTopicPrefetch</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>n/a</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>sets the prefetch for durable topic consumers that are using the default value</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd
 "><p>advisoryForDiscardingMessages</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>send an advisory when a message is discarded from a non durable subscription</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="color: rgb(0,0,0);">alwaysRetroactive</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>(v5.6) makes all subscribers retroactive negating the need to modify the clients to enable this feature</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="color: rgb(0,0,0);">expireMessagesPeriod</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>30000</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>(v5.6) the period (in ms) of checks for message expiry on inactive durable subscribers, value of 0 disables</p></td></tr></tbody></table></div><p>
 <span style="line-height: 1.4285715;">The following are examples of different policies that can be customised on a per destination basis</span></p><ul><li><a shape="rect" href="dispatch-policies.html">Dispatch Policies</a></li></ul><p>Here is an <a shape="rect" class="external-link" href="http://svn.apache.org/repos/asf/activemq/trunk/activemq-unit-tests/src/test/resources/org/apache/activemq/xbean/activemq-policy.xml">example</a> of this in use.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
+<div class="wiki-content maincontent"><p>We support a number of different policies which can be attached to individual destinations (queues, topics) or to wildcards of queue/topic hierarchies. This makes it easy to configure how different regions of the JMS destination space are handled.</p><p>The properties you can set on a Destination are as follows:</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Common property</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>producerFlowControl</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the producer will slow down and eventually block if no resources(e.g. memory) are available on the broker. If this is off messages get off-lined to dis
 k to prevent memory exhaustion</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>enableAudit</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>tracks duplicate messages (which can occur in failover for non-persistent messages)</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>useCache</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>persistent messages are cached for fast retrieval from store</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>maxPageSize</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>200</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>maximum number of messages to page from store at a time</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>maxBrowsePageSize</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>400<
 /p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>maximum number of messages to page from store for a browser</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>memoryLimit</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>n/a</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>The memory limit for a given destination. This acts as a child to the overall broker memory specified by the <a shape="rect" href="producer-flow-control.html"><code>&lt;systemUsage&gt;</code>'s <code>memoryLimit</code> attribute</a>. There is no default for this value; it simply acts as a child to the overall broker memory until the broker memory is exhausted.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>minimumMessageSize</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>1024</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>for non-serialized messages (embedded broker) - the assumed size of the message used for memory 
 usage calculation. Serialized messages used the serialized size as the basis for the memory calculation</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>cursorMemoryHighWaterMark</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>70</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the percentage (%) tipping point at which a system memory limit will cause a cursor to block or spool to disk</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>storeUsageHighWaterMark</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>100</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the percentage (%) tipping point at which a system usage store limit will cause a sent to block</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>prioritizedMessages</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>have the store respect message priori
 ty</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>advisoryForConsumed</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>send an advisory message when a message is consumed by a client</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>advisoryForDelivery</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>send an advisory message when a message is sent to a client</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>advisoryForSlowConsumers</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>send an advisory message if a consumer is deemed slow</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>advsioryForFastProducers</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></t
 d><td colspan="1" rowspan="1" class="confluenceTd"><p>send an advisory message if a producer is deemed fast</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>advisoryWhenFull</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>send an advisory message when a limit (memory,store,temp disk) is full</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>includeBodyForAdvisory</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>includes the body of the original message that triggered the advisory as part of the dataStructure field in the advisory message (when applicable). Normally the message body is cleared.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>gcInactiveDestinations</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="c
 onfluenceTd"><p>delete inactive destination</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>inactiveTimoutBeforeGC</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>5000</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>inactivity period (in ms) before destination is considered inactive</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span>usePrefetchExtension</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the prefetch extension is used when a&#160;message is delivered but not acked, such that the broker can dispatch&#160;another message (e.g., prefetch == 0), the idea being that there will always be prefetch num&#160;messages pending. It also allows a transaction batch to exceed the prefetch&#160;value.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>slowConsumerStrategy</p></td><td colspan="1" rowspan="1" class="con
 fluenceTd"><p>null</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>sets the strategy for handling slow consumers. see <a shape="rect" class="external-link" href="http://svn.apache.org/repos/asf/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/policy/AbortSlowConsumerStrategy.java">abortSlowConsumerStrategy</a></p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>maxDestinations</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>-1</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>(v5.12) if 0 or greater, sets the maximum number of destinations that can be created. This is useful to limit the number of hierarchical destinations that can be created under a wildcard destination.</p></td></tr></tbody></table></div><p>Additional properties for a Queue</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Queue only property</p></th><th colspan="1" 
 rowspan="1" class="confluenceTh"><p>default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>useConsumerPriority</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>true</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>use the priority of a consumer when dispatching messages from a Queue</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>strictOrderDispatch</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>if true queue will not round robin consumers, but it'll use a single one until its prefetch buffer is full</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>optimizedDispatch</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>don't use a separate thread for dispatching from a Queue</p></
 td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>lazyDispatch</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>only page in from store the number of messages that can be dispatched at time</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>consumersBeforeDispatchStarts</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>when the first consumer connects, wait for specified number of consumers before message dispatching starts</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>timeBeforeDispatchStarts</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>0</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>when the first consumer connects, wait for specified time (in ms) before message dispatching starts</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>que
 uePrefetch</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>n/a</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>sets the prefetch for consumers that are using the default value</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>expireMessagesPeriod</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>30000</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>the period (in ms) of checks for message expiry on queued messages, value of 0 disables</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>persistJMSRedelivered</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>(v 5.10) if true, before a persistent message is dispatched by the broker for the first time, the message is rewritten to reflect the possible delivery.</p><p>This ensures the message JMSRedelivered header is a reliable indication of possible duplicate delivery.</p></td></tr>
 </tbody></table></div><p>Additional properties for a Topic</p><div class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" class="confluenceTh"><p>Topic only property</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>default</p></th><th colspan="1" rowspan="1" class="confluenceTh"><p>description</p></th></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>topicPrefetch</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>n/a</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>sets the prefetch for topic consumers that are using the default value</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>durableTopicPrefetch</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>n/a</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>sets the prefetch for durable topic consumers that are using the default value</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p>advisoryForDiscar
 dingMessages</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>send an advisory when a message is discarded from a non durable subscription</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="color: rgb(0,0,0);">alwaysRetroactive</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>false</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>(v5.6) makes all subscribers retroactive negating the need to modify the clients to enable this feature</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><span style="color: rgb(0,0,0);">expireMessagesPeriod</span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>30000</p></td><td colspan="1" rowspan="1" class="confluenceTd"><p>(v5.6) the period (in ms) of checks for message expiry on inactive durable subscribers, value of 0 disables</p></td></tr></tbody></table></div><p><span style="line-heig
 ht: 1.4285715;">The following are examples of different policies that can be customised on a per destination basis</span></p><ul><li><a shape="rect" href="dispatch-policies.html">Dispatch Policies</a></li></ul><p>Here is an <a shape="rect" class="external-link" href="http://svn.apache.org/repos/asf/activemq/trunk/activemq-unit-tests/src/test/resources/org/apache/activemq/xbean/activemq-policy.xml">example</a> of this in use.</p><div class="code panel pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">
 <script class="brush: xml; gutter: false; theme: Default" type="syntaxhighlighter"><![CDATA[
 &lt;beans 
   xmlns=&quot;http://www.springframework.org/schema/beans&quot;