You are setting a limit for each 'a.' destination but the limit is
applied to a shared resource so it can be a global cap. Each
destination will use up to 128Mb of the broker memoryUsage limit, if
it can.

The shared memory resource is configured via the broker
<systemUsage><memoryUsage /> attributes and typically this needs to be
large enough to accommodate all of the destinations limits, other wise
the usage of one destination will interfere with the usage of others.
For example, if the broker  is configured to have just 128Mb in
memoryUsage, then the first destination to reach the 128Mb limit will
effectively block all destinations. This may or may not be what you
want.

Note: all of the limits are applied to approximate internal memory
usage values based on message size etc, but are not based on real JVM
stats. Typically, the JVM heap needs to be configured to exceed the
broker systemUsage limit by about 30%

On 10 November 2010 22:18, Jim Lloyd <jll...@silvertailsystems.com> wrote:
> Suppose I have topics a.1, a.2, a.3, ..., a.N and I configure my broker's
> destinationPolicy as follows:
>
>        <destinationPolicy>
>            <policyMap>
>                <policyEntries>
>                    <policyEntry topic="a.>" producerFlowControl="false"
> memoryLimit="128mb">
>                        <pendingSubscriberPolicy>
>                            <vmCursor />
>                        </pendingSubscriberPolicy>
>                    </policyEntry>
>                </policyEntries>
>            </policyMap>
>        </destinationPolicy>
>
> Is the 128mb limit a total cap on all traffic to a.>, or is it 128Mb for
> each of the N topics?
>
> Thanks,
> Jim Lloyd
>



-- 
http://blog.garytully.com
http://fusesource.com

Reply via email to