activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Gary Tully (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQ-4533) Messages stuck in queue with redelivered=true
Date Fri, 21 Jun 2013 16:08:26 GMT

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

Gary Tully commented on AMQ-4533:
---------------------------------

However, if there are very few messages and lots of consumers, using a prefetch > 0 will
not have much impact. Prefetch is really only beneficial when consumers are very fast and
when there are lots of messages in the queue or many producers. When consumers take a long
or variable amount of time, it is best to leave the messages in the queue (prefecth=1) for
other consumers to access.

ok, we may need to make the slowness determination some sort of strategy.
Have a thought on how best to determine the 'slowness" of a consumer, maye time since last
ack. 
It needs to a fast calculation. The decision to dispatch based on prefetch was already firing
an advisory for a slow consumer so that was reused for the current abort policy. 

I would be interested to know if you can get the test to fail with a prefetch=1, also note
that just the consumer is aborted, not the connection, abortConnection=false (Default)
                
> 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
>         Attachments: AMQ4533Test.java, AMQ4533TestPatch.txt, AMQ4533TestPatch.txt, AMQ4533TestPatch.txt,
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

Mime
View raw message