activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Tully (JIRA)" <>
Subject [jira] Commented: (AMQ-2286) NetworkConnector PrefetchSize
Date Fri, 12 Jun 2009 16:59:35 GMT


Gary Tully commented on AMQ-2286:

ok, I think you need to reduce the memory available to the queues on all brokers and disable
producerFlowControl. The prefetch value is applied to network subscriptions but if the remote
broker can accept a message it will take it. Even with straight through processing, not having
a consumer available to consume is not a problem unless the queue is memory constrained to
block a send if there is no space.

So to ensure that 5000 messages don't build up in a slow broker, constrain the memory allocated
to a queue such that it will only accept 10 or twenty messages and disableFlowControll so
that a send will block. When that queue is full, because the consumers are slow, this will
eventually push back to the network consumer with its small prefetch.

> NetworkConnector PrefetchSize
> -----------------------------
>                 Key: AMQ-2286
>                 URL:
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: Broker
>    Affects Versions: 5.2.0
>         Environment: Sun solaris 10
>            Reporter: ying
>            Priority: Blocker
> I have an issue which greatly reduces the quality of service of a network of activemq
> Here is what I have:
> 1. 4 brokers( broker1, broker2, broker3,  broker4) in a network by multicast discovery
> 2. i have 2 consumers of QueueA on broker1, 2 consumers of QueueA on broker2, and consumer
queuePrefetch=1, networkConnector prefetchSize=1. Queue is using RoundRobinDispatchPolicy
> 3. I publish to QueueA on broker3 with 100 msgs, 2 consumers on broker1 are fast and
they process fine but 2 consumers on broker2 are stuck. However, with this config, msgs are
still 50 goes to broker1, 50 goes to broker2, and when consumers on broker2 get stuck, those
50 msgs are stuck on broker2. It seems the prefetchSize=1 on networkConnector have no effect
at all.
> what I expect in this case will be that 98 msgs shall go to broker1, and only 2 msgs
stuck on broker2's consumers. I cannot lose a single msg so ConstantPendingMessageLimit will
not help.
> Please help. Thanks

This message is automatically generated by JIRA.
You can reply to this email to add a comment to the issue online.

View raw message