activemq-commits mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From build...@apache.org
Subject svn commit: r994893 - in /websites/production/activemq/content: cache/main.pageCache per-destination-policies.html
Date Wed, 10 Aug 2016 23:22:13 GMT
Author: buildbot
Date: Wed Aug 10 23:22:13 2016
New Revision: 994893

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 Wed Aug 10 23:22:13
2016
@@ -81,15 +81,16 @@
   <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 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 send 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">
-<pre class="brush: xml; gutter: false; theme: Default" style="font-size:12px;">&lt;beans

-  xmlns="http://www.springframework.org/schema/beans" 
-  xmlns:amq="http://activemq.apache.org/schema/core"
-  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
-  xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
-  http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd"&gt;
-  &lt;bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/&gt;
-  &lt;broker persistent="false" brokerName="${brokername}" xmlns="http://activemq.apache.org/schema/core"&gt;
+<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 Value</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>producerFlowControl</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>If <strong>true</strong>
the broker will throttle (flow-control) the producer. Throttling is achieved either by withhol
 ding the producer's ACK or by raising a&#160;<strong><code>javax.jms.ResourceAllocationException</code></strong>
(that's propagated back to the client) when local resources e.g., memory and/or storage, have
been exhausted.</p><p>If&#160;<strong><code>false</code></strong>
excess messages will be written to the message store to prevent memory exhaustion. However,
when the message store reaches capacity the producer will be throttled until resources are
freed.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>enableAudit</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>When&#160;<strong><code>true</code></strong>
the broker will track duplicate messages. Duplicates can happen for non-persistent messages
during failover.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>useCache</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd">
 <p><code>true</code></p></td><td colspan="1" rowspan="1"
class="confluenceTd"><p>If&#160;<strong><code>true</code></strong>
persistent messages are cached for fast retrieval from store.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>maxPageSize</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>200</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The maximum number of messages to
page in from the store at one time. Increase this value to improve performance for queue destination's
that contain grouped messages that are consumed by multiple concurrent consumers.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>maxBrowsePageSize</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>400</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The maximum number of messages to
page in from the store at one time for a browser.</p></td></tr><tr><td
colspan="1" rowspan
 ="1" class="confluenceTd"><p><code>memoryLimit</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>n/a</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The memory limit (in bytes) of the
destination's cursor.</p><p>This memory limit is subordinate to the system level
memory limit, as specified by the&#160;<a shape="rect" href="producer-flow-control.html"><code>&lt;systemUsage&gt;/&lt;memoryUsage&gt;</code></a>
<span class="confluence-link">attribute</span>. 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><p><strong>Note</strong>:
when this limit is specified the destination's&#160;<strong><code>cursorMemoryHighWaterMark</code></strong>
will be applied against it and not the&#160;<strong><code>&lt;systemUsage&gt;/&gt;&lt;memoryUsage&gt;</code></strong>
memory limit.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>minimumMessageSize</cod
 e></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>1024</code></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
use the serialized size as the basis for the memory calculation.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>cursorMemoryHighWaterMark</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>70</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The percentage (%) threshold applied
either to the&#160;<strong><code>&lt;systemUsage&gt;/&lt;memoryUsage&gt;</code></strong>
or the destination's&#160;<strong><code>memoryLimit</code></strong>
(when defined) which when exceeded will cause the destination's cursor to either block or
write to disk.</p></td></tr><tr><td colspan="1" rowspan="1" class="confluenceTd"><p><code>storeUsageHighWaterMark</code></p></td
 ><td colspan="1" rowspan="1" class="confluenceTd"><p><code>100</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The percentage (%) threshold of the&#160;<strong><code>&lt;systemUsage&gt;/&lt;storeUsage&gt;</code></strong>
store limit which when exceeded causes a send to block.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>prioritizedMessages</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Persist message priority information.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>advisoryForConsumed</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></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><code>advisoryForDelivery</code></p></td><td
co
 lspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></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><code>advisoryForSlowConsumers</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></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><code>advsioryForFastProducers</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></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><code>advisoryWhenFull</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></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><code>includeBodyForAdvisory</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></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&#160;<strong><code>dataStructure</code></strong>
field in the advisory message (where applicable). Normally the message body is cleared.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>gcInactiveDestinations</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>Garbage collect inactive destinations.</p></td></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>inactiveTimoutBeforeGC</code></p></td><td
colspan="1" rowspan="1" clas
 s="confluenceTd"><p><code>5000</code></p></td><td colspan="1"
rowspan="1" class="confluenceTd"><p>The timeout (in ms) after which a destination
is considered inactive.</p></td></tr><tr><td colspan="1" rowspan="1"
class="confluenceTd"><p><span><code>usePrefetchExtension</code><br
clear="none"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The prefetch extension is used when
a&#160;message is delivered but not ACK'ed, such that the broker can dispatch&#160;another
message, e.g., <code>prefetch == 0</code>, the idea being that there will always
be prefetch number of 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><code>slowConsumerStrategy</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>null</code></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><code>maxDestinations</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>-1</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>(v5.12) If&#160;<strong><code>0</code></strong>
or greater, sets the maximum number of destinations that can be created. This parameter is
intended 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" rows
 pan="1" class="confluenceTh"><p>Default Value</p></th><th colspan="1"
rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>useConsumerPriority</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>true</code></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><code>strictOrderDispatch</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>If&#160;<strong><code>true</code></strong>
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><code>optimizedDispatch</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></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><code>lazyDispatch</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></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><code>consumersBeforeDispatchStarts</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></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><code>timeBeforeDispatchStarts</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>0</code></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><code>queuePrefetch</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>n/a</code></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><code>expireMessagesPeriod</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>30000</code></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><code>persistJMSRedelivered</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></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&#160;<strong><code>JMSRedelivered</code></strong>
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 Value</p></th><th
colspan="1" rowspan="1" class="confluenceTh"><p>Description</p></th></tr><tr><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>topicPrefetch</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>n/a</code></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><code>durableTopicPrefetch</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>n/a</code></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><code>advisoryForDiscardingMessages</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></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);"><code>alwaysRetroactive</code><br
clear="none"></span></p></td><td colspan="1" rowspan="1" class="confluenceTd"><p><code>false</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>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);"><code>expireMessagesPeriod</code><br clear="none"></span></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p><code>30000</code></p></td><td
colspan="1" rowspan="1" class="confluenceTd"><p>The interval (in ms) between message
expiration checks on inactive durable subscribers.</p><p><strong>Note</strong>:
set to <strong><code>0</code></strong> to disable message expiration
checking.</p></td></tr></tbody></table></div><p><span
style="line-height: 1.4285715;">The following are examples of different policies that can
be customized 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">
+<pre class="brush: xml; gutter: true; theme: Default" style="font-size:12px;">&lt;beans
xmlns="http://www.springframework.org/schema/beans" 
+       xmlns:amq="http://activemq.apache.org/schema/core"
+       xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+       xsi:schemaLocation="http://www.springframework.org/schema/beans http://www.springframework.org/schema/beans/spring-beans-2.0.xsd
+                           http://activemq.apache.org/schema/core http://activemq.apache.org/schema/core/activemq-core.xsd"&gt;
+
+ &#160;&lt;bean class="org.springframework.beans.factory.config.PropertyPlaceholderConfigurer"/&gt;
+
+ &#160;&lt;broker persistent="false" brokerName="${brokername}" xmlns="http://activemq.apache.org/schema/core"&gt;
     &lt;!--  lets define the dispatch policy --&gt;
     &lt;destinationPolicy&gt;
       &lt;policyMap&gt;
@@ -102,20 +103,24 @@
               &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;
+
+           &#160;&lt;!--  1 minute's worth --&gt;
             &lt;subscriptionRecoveryPolicy&gt;
               &lt;timedSubscriptionRecoveryPolicy recoverDuration="60000" /&gt;
             &lt;/subscriptionRecoveryPolicy&gt;
           &lt;/policyEntry&gt;
-          &lt;policyEntry topic="PRICES.&gt;"&gt;
+    
+         &#160;&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;



Mime
View raw message