Hi,
I have a basic configuration of the DefaultMessageListenerContainer (Spring 3.0.x), for an ActiveMQ jms queue.
When the load on the queue increases, I see additional consumers being started, so that works.Code:<bean id="Agent-jms" class="org.springframework.jms.listener.DefaultMessageListenerContainer"> <property name="connectionFactory" ref="jmsFactory" /> <property name="destination" ref="agentServiceQueue" /> <property name="messageSelector" value="JMSCorrelationID is null" /> <property name="messageListener"> <bean class="org.springframework.jms.listener.adapter.MessageListenerAdapter"> <constructor-arg ref="agentService.jmsListener" /> </bean> </property> <property name="errorHandler" ref="agentService.jmsListener" /> <property name="maxConcurrentConsumers" value="100" /> </bean>
However, when the queue is empty again, all consumers stay alive, none of them quit.
I would expect, based on the api docs and on Bruce Snyders excellent explanations [1] that idleTaskExecutionLimit which defaults to 1, would have all consumers quit after 1 timed out poll.
See attached image [2] for a graph on the number of consumers by queue (the sudden drop around 'thu 12:00' is from the container restarting).
The number of consumers only rises, it never decreases...
Is there something I overlooked?
With kind regards,
Geert
[1] http://bsnyderblog.blogspot.com/2010...mption-in.html
[2] jmx_dco_jms_consumercount-day.jpg


Reply With Quote
