activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "James Strachan" <>
Subject Re: [jira] Commented: (AMQ-850) add the ability to timeout a consumer to
Date Wed, 09 Aug 2006 20:05:54 GMT
On 8/9/06, Komandur <> wrote:
> I read the link, reread the thread & I misunderstood the prefetch feature ...
> the broker is pushing messages into the clientside pre-fetch buffers upto
> the limit.
> Here are some ideas, let me know what you think ...
> 1. can we use an 'elastic prefetch' buffer based on a sliding window (like
> in TCP)  - this reacts to client (mis)behavior

We could start with a prefetch of 1 and increase it over time for well
behaving clients. However it doesn't fix the problem as a mis-behaving
consumer could still hog at least one message - though this would
reduce the imact from 1000 or so to 1.

> 2. When the broker detects a misbehaving client, reclaim the unAcked
> messages for other active consumers (and make the window size 0 or 1 in step
> 1 above)

If a client/connection misbehaves (e.g. becomes inactive) then the
connection is closed and all consumers are closed too causing all
their unacked messages to be redelivered.

The issue AMQ-850 is specifically to reclaim the prefetch buffer of
unacked messages from a misbehaving consumer. e.g. if 1 consumer goes
bad yet the rest of the client appears to be fine such as if a
consumer is created but never used or a consumer locks up before
grabbing another message or during the processing of a message.



View raw message