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