[
https://issues.apache.org/jira/browse/AMQ-4208?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13510934#comment-13510934
]
Sinu Sekhar commented on AMQ-4208:
----------------------------------
Just want to add that I used two machines to reproduce this on a non-prod
environment, one for the broker and one for the app. JMeter was run on a
different machine, to send load to the application which acted like a producer
as well as consumer ... all part of the same war file, implemented using Spring.
> Stuck Message Issue with ActiveMQ 5.6
> -------------------------------------
>
> Key: AMQ-4208
> URL: https://issues.apache.org/jira/browse/AMQ-4208
> Project: ActiveMQ
> Issue Type: Bug
> Components: activemq-pool, Broker
> Affects Versions: 5.6.0
> Environment: Production
> Reporter: Sinu Sekhar
> Priority: Critical
> Attachments: activemq-orig.11302012.xml, activemqthreads6.txt,
> threads6.txt
>
>
> We have been facing a stuck message issue with 5.6 for a while now. This week
> I got a chance to reproduce this in a non-production environment every time I
> ran a high load.
> We use Spring DMLC with the following configuration.
> <bean id="asyncServiceContainer2"
> class="org.springframework.jms.listener.DefaultMessageListenerContainer">
> <property name="connectionFactory"
> ref="asyncServiceConnectionFactory2" />
> <property name="destination" ref="asyncServiceDestination" />
> <property name="messageListener" ref="asyncService" />
> <!-- Cache JMS connection -->
> <property name="cacheLevelName" value="CACHE_CONNECTION" />
> <!-- The maximum number of concurrent consumers to create -->
> <property name="maxConcurrentConsumers" value="30" />
> <property name="receiveTimeout" value="10000" />
> <property name="maxMessagesPerTask" value="20" />
> <property name="idleTaskExecutionLimit" value="5" />
> </bean>
> The broker uses the default settings with producerFlowControl on.
> If I send a jmeter load with 100 concurrent users, with 1000 requests from
> each user...it generates a throughput of around 60TPS/node. This is for the
> producer side.
> I see no issues from a producer standpoint.
> But everytime I run this test, it reaches a point where the deque count just
> freezes up and the enqueue keeps incrementing because the producer is not
> affected. This freeze affects all consumers. The only way to unlock it is by
> restarting the broker. I have seen it being released by restarting the app as
> well.
> When this free happens, there is usually a large number of *.log files in the
> kahadb folder and the size of the b-tree file db.data also keeps incrementing
> indicating the backlog.
> I have taken jstack traces for the broker as well as the application, which I
> will attach with this request.
> Please note that this happens everytime I run with the setup shown.
> One way I can prevent the issue from happening so frequently, is by turning
> off dynamic scaling by using concurrentConsumers to a high number and setting
> maxMessagesPerTask to the default (-1 or infinity) for Spring DMLC. This
> keeps the number of consumers constant and increased the consumption rate,
> preventing the backlog from happening. In addition to these changes I also
> had to switch from CACHE_CONNECTION cache type to CACHE_CONSUMER to prevent
> this from happening.
> I have seen a similar issue reported for an earlier version at
> http://mail-archives.apache.org/mod_mbox/activemq-users/201005.mbox/%[email protected]%3E
--
This message is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators
For more information on JIRA, see: http://www.atlassian.com/software/jira