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 2014/08/15 16:21:19 UTC

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

Author: buildbot
Date: Fri Aug 15 14:21:18 2014
New Revision: 919437

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 Fri Aug 15 14:21:18 2014
@@ -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#ProducerFlowControl-Systemusage"><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 brok
 er) - 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 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 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 st
 ore 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="con
 fluenceTd"><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>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" clas
 s="confluenceTd"><span>usePrefetchExtension</span></td><td colspan="1" rowspan="1" class="confluenceTd">true</td><td colspan="1" rowspan="1" class="confluenceTd"><span style="color: rgb(0,0,0);">the prefetch extension is used when a&#160;</span><span style="color: rgb(0,0,0);">message is delivered but not acked, such that the broker can dispatch&#160;</span><span style="color: rgb(0,0,0);">another message (e.g., prefetch == 0), the idea being that there will always be prefetch num&#160;</span><span style="color: rgb(0,0,0);">messages pending. It also allows a transaction batch to exceed the prefetch&#160;</span><span style="color: rgb(0,0,0);">value.</span></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/rep
 os/asf/activemq/trunk/activemq-core/src/main/java/org/apache/activemq/broker/region/policy/AbortSlowConsumerStrategy.java">abortSlowConsumerStrategy</a></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="confluenc
 eTd"><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 start
 s</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">persistJMSRedelivered</td><td colspan
 ="1" rowspan="1" class="confluenceTd">false</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>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" cla
 ss="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 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#ProducerFlowControl-Systemusage"><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 brok
 er) - 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 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 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 st
 ore 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="con
 fluenceTd"><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>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" clas
 s="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></tbody></tab
 le></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>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 th
 e 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 co
 lspan="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 colsp
 an="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">
 <script class="theme: Default; brush: xml; gutter: false" type="syntaxhighlighter"><![CDATA[
 &lt;beans 
   xmlns=&quot;http://www.springframework.org/schema/beans&quot;