[ 
https://issues.apache.org/jira/browse/AMQ-4533?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13771703#comment-13771703
 ] 

Dejan Bosanac commented on AMQ-4533:
------------------------------------

The problem is how the spring message listener works. It doesn't use message 
listener like you would in a JMS app. Instead it does receive() on the session, 
gets the message and manually executes onMessage() on the listener. In auto 
acknowledge mode as soon as receive() is done, the message is acked and 
considered processed. So the message that sleeps forever will not be resent to 
other consumers when this consumer is detected slow. Turning to client 
acknowlement Spring actually manually acks the message when onMessage() 
completes. So when we close the consumer, the current long-sleeping message 
will be replayed to other consumers.
                
> Messages stuck in queue with redelivered=true
> ---------------------------------------------
>
>                 Key: AMQ-4533
>                 URL: https://issues.apache.org/jira/browse/AMQ-4533
>             Project: ActiveMQ
>          Issue Type: Bug
>          Components: JMS client
>    Affects Versions: 5.7.0
>         Environment: Fuse Message Broker 5.7.0
>            Reporter: Jason Shepherd
>            Assignee: Timothy Bish
>             Fix For: 5.9.0
>
>         Attachments: AMQ4533_logs.ZIP, AMQ4533Test.java, AMQ4533-test.patch, 
> AMQ4533-Test.patch, AMQ4533-Test.patch, AMQ4533-Test.patch, 
> AMQ4533-Test.patch, AMQ4533-Test.patch, AMQ4533TestPatch.txt, 
> AMQ4533TestPatch.txt, AMQ4533TestPatch.txt, AMQFreezeFailingTest.zip, 
> AMQFreeze_logs.zip, AMQFreezeTest-5.8.0.fuse-72-SNAPSHOT-log.zip, 
> AMQFreezeTest-5.9.0.redhat-610084-log.zip, AMQFreezeTest.patch, 
> AMQFreezeTest.zip, AMQFreezeTest.zip, kahaPendingMessages.zip
>
>
> We're  getting message stuck in queues with the 
> redelivery flag set to true.
> We used the following test model: put every 1 second 50 messages 
> sequentially, and after that, the rest of 1000 msgs quickly to INPUT_QUEUE 
> and 
> while starting 25 listeners cosuming from INPUT_QUEUE, which takes about 30 
> seconds to move the message to RECEIPT_QUEUE, 10 other listeners on 
> RECEIPT_QUEUE consume and counts them.
> We tried making one of the consumer slow by setting the 
> processing time to 100000 seconds (sleep) and putting a heavy load in 
> 500 threads every 1 ms to some other queues the same time.
> Our test case is attached, you might need to install some dependencies 
> to the local maven repository manually:
>      mvn install:install-file -DgroupId=org.apache.activemq 
> -DartifactId=activemq-core -Dversion=5.7.0-fuse-71-047 -Dpackaging=jar 
> -Dfile=activemq-core-5.7.0.fuse-71-047.jar
>      mvn install:install-file -DgroupId=org.apache.kahadb 
> -DartifactId=kahadb -Dversion=5.7.0-fuse-71-047 -Dpackaging=jar 
> -Dfile=kahadb-5.7.0.fuse-71-047.jar
>      mvn install:install-file 
> -DgroupId=org.apache.geronimo.management.specs 
> -DartifactId=geronimo-j2ee-management_1.1_spec -Dversion=1.0.1 
> -Dpackaging=jar -Dfile=geronimo-j2ee-management_1.1_spec-1.0.1.jar
>      mvn install:install-file -DgroupId=org.apache.activemq.pool 
> -DartifactId=activemq-pool -Dversion=5.7.0-fuse-71-047 -Dpackaging=jar 
> -Dfile=activemq-pool-5.7.0.fuse-71-047.jar
> To run the test, simply use the Maven test target:
>     mvn clean test
> If the problem occurs the you'll get a message like this in the test 
> results, (target/surefire-reports):
>     java.lang.AssertionError: Still messages in InputQueue expected:<0> 
> but was:<365>

--
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

Reply via email to