Thanks! Sounds like there might be another way we can configure the flow
control that blocks only one producer? Do you have any recommendation on
what changes I should make to the config?

On Wed, Jan 2, 2013 at 12:33 PM, Christian Posta
<christian.po...@gmail.com>wrote:

> Enqueue count = number of messages sent to the queue
> Dequeue count = number of messages ack'd by the consumer
> Inflight count = number of messages sent to consumer's session (and are not
> ack'd by consumer)
> Dispatch count = messages sent to the consumer (dequeue + inflight)
>
> I asked about the async sends because the producer flow control you hit was
> the kind that will block the entire connection (instead of just blocking
> that one producer).
>
>
>
>
>
> On Wed, Jan 2, 2013 at 12:41 PM, Mohit Anchlia <mohitanch...@gmail.com
> >wrote:
>
> > Thanks again! Is the dispatch queue size the one that relates to what's
> > held in memory?
> >
> > We are using mule and the endpoint has no transactions configured. What
> did
> > you mean by forcing async?
> >
> > On Wed, Jan 2, 2013 at 11:06 AM, Christian Posta
> > <christian.po...@gmail.com>wrote:
> >
> > > Correct. The memoryUsage is increased when messages are held in memory.
> > > This happens when messages are paged in from the store. They are then
> > > dispatched to consumers and held until the consumer acks.
> > >
> > > In your case looks like a particular destination (eventsEndpoint) is
> > > filling up somehow. Can you look in JMX and see how many enqueued,
> > > dispatched, dequeued, inflight etc? Also check to see how many
> > > subscriptions to that destination, and see what those dispatch-counter
> > and
> > > dispatch queue size looks like.
> > >
> > > BTW any chance you're sending (producers) using a transaction, or
> forcing
> > > sends to be async?
> > >
> > >
> > >
> > > On Wed, Jan 2, 2013 at 11:51 AM, Mohit Anchlia <mohitanch...@gmail.com
> > > >wrote:
> > >
> > > > So if I understand correctly I shouldn't be seeing this behaviour
> > unless
> > > > something is being held in memory. We ack immediately so I am kind of
> > > > wondering what might be going on here. Is there a way to find out
> what
> > > > might be happening here?
> > > >
> > > > On Wed, Jan 2, 2013 at 10:03 AM, Christian Posta
> > > > <christian.po...@gmail.com>wrote:
> > > >
> > > > > What info can you provide about how clients are consuming from the
> > > > queues?
> > > > > Any chance there are a bunch of messages "inflight" which haven't
> > been
> > > > > ack'd by the consumer?
> > > > >
> > > > >
> > > > > On Wed, Jan 2, 2013 at 10:20 AM, Mohit Anchlia <
> > mohitanch...@gmail.com
> > > > > >wrote:
> > > > >
> > > > > > I see these messages being logged. Queues are setup to use
> > persistent
> > > > > > store. I am wondering what's causing this messages to get
> blocked.
> > I
> > > > see
> > > > > > there is a memoryLimit but if I am using persistent=true then
> > should
> > > > this
> > > > > > be the desired behaviour?
> > > > > >
> > > > > >
> > > > > > 2013-01-02 05:06:13,388 | INFO |
> > > > > > Usage(default:memory:queue://eventsEndpoint:memory)
> > percentUsage=0%,
> > > > > > usage=0, limit=20971520,
> > > > > > percentUsageMinDelta=1%;Parent:Usage(default:memory)
> > > percentUsage=106%,
> > > > > > usage=22366029, limit=20971520, percentUsageMinDelta=1%: Usage
> > > Manager
> > > > > > Memory Limit reached. Producer
> > > > > > (ID:pfdamq301.ie.net-54582-1351809386355-2:1:1:1) stopped to
> > prevent
> > > > > > flooding queue://eventsEndpoint. See
> > > > > >
> > > > > >
> > > > > >    <broker xmlns="http://activemq.apache.org/schema/core";
> > > > > > brokerName="static-broker1" persistent="true"
> > > > > > dataDirectory="${activemq.data}">
> > > > > >
> > > > > >         <!-- Destination specific policies using destination
> names
> > or
> > > > > > wildcards -->
> > > > > >         <destinationPolicy>
> > > > > >             <policyMap>
> > > > > >                 <policyEntries>
> > > > > >                     <policyEntry queue=">"
> > producerFlowControl="true"
> > > > > > memoryLimit="20mb">
> > > > > >                         <deadLetterStrategy>
> > > > > >                           <individualDeadLetterStrategy
> > > > > queuePrefix="DLQ."
> > > > > > useQueueForQueueMessages="true" />
> > > > > >                         </deadLetterStrategy>
> > > > > >                     </policyEntry>
> > > > > >                     <policyEntry topic=">"
> > producerFlowControl="true"
> > > > > > memoryLimit="20mb">
> > > > > >                     </policyEntry>
> > > > > >                 </policyEntries>
> > > > > >             </policyMap>
> > > > > >         </destinationPolicy>
> > > > > >
> > > > > >         <!-- Use the following to configure how ActiveMQ is
> exposed
> > > in
> > > > > JMX
> > > > > > -->
> > > > > >         <managementContext>
> > > > > >             <managementContext createConnector="true"/>
> > > > > >         </managementContext>
> > > > > >
> > > > >
> > > > >
> > > > >
> > > > > --
> > > > > *Christian Posta*
> > > > > http://www.christianposta.com/blog
> > > > > twitter: @christianposta
> > > > >
> > > >
> > >
> > >
> > >
> > > --
> > > *Christian Posta*
> > > http://www.christianposta.com/blog
> > > twitter: @christianposta
> > >
> >
>
>
>
> --
> *Christian Posta*
> http://www.christianposta.com/blog
> twitter: @christianposta
>

Reply via email to