[ https://issues.apache.org/activemq/browse/AMQ-850?page=comments#action_36733 ] james strachan commented on AMQ-850: ------------------------------------
Vadim: agreed in the case where the consumer just never processes any messages and the receive() method is never called. A consumer would basically be terminated until a call to receive*() which would re-awaken it again. Though the consumer may be in the middle of processing a message but is just taking too long due to some hang/lock (either after calling receive() and not calling commit() / acknowledge() - or be inside a MessageListener method call - and may need to actually be closed preventing any future messages being dispatched. > add the ability to timeout a consumer to prevent a bad, hung or unused > consumer consumer from grabbing messages > --------------------------------------------------------------------------------------------------------------- > > Key: AMQ-850 > URL: https://issues.apache.org/activemq/browse/AMQ-850 > Project: ActiveMQ > Issue Type: New Feature > Components: Broker > Reporter: james strachan > Fix For: 4.2 > > > If a MessageConsumer is created but not used, it still tends to get its > prefetch-buffer worth of messages. If it does not process them within a > specific time the consumer should either be closed, or the messages unacked > and flushed from the buffer so that the consumer does not hog the messages. > Similarly if a consumer gets a message but then locks up without processing > the message we should lazily kill the consumer releasing and redelivering all > its messages -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: https://issues.apache.org/activemq/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira
