activemq-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Farhad Dehghani (JIRA)" <j...@apache.org>
Subject [jira] [Commented] (AMQ-1853) Optional non-blocking redelivery
Date Thu, 28 Jul 2011 07:19:10 GMT

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

Farhad Dehghani commented on AMQ-1853:
--------------------------------------

As long as camel uses activemq as the underlying messaging system, then it may necessarily
have the same issue. You may be able to spawn a new thread to handle consumption or redelivery
of a message, but my guess is that the original consumer thread would somehow remain blocked
until activemq get exhausted to retry according to the redelivery policy. Please correct me
if I'm wrong. 
I have tried this with spring-integration, by setting the "concurrentConsumers" on the jms-listener
container up to a higher value than 1, and I succeed to continue picking messages from the
queue, but the original consumer remains blocked.

> Optional non-blocking redelivery
> --------------------------------
>
>                 Key: AMQ-1853
>                 URL: https://issues.apache.org/jira/browse/AMQ-1853
>             Project: ActiveMQ
>          Issue Type: Wish
>          Components: Broker
>    Affects Versions: 5.1.0
>            Reporter: Demian Mrakovich
>             Fix For: 5.6.0
>
>
> When a message is redelivered the consumer blocks for the amount of time specified by
the redelivery delay. For a high load scenario where message order is irrelevant this is just
reducing performance and will result in a complete halt if the delay is long and several bad
messages are consumed in a short time. 
> I think what I basically wish for is how it worked in versions 3.x, prior to fix for
AMQ-268. So I would very much like to have configurable option to NOT block consumers when
redelivering messages. 
> If no-one feels up to it, I'd still appreciate some hints and I could try to fix it myself.
Looking at ActiveMQMessageConsumer.rollback(), I was thinking something in the lines of just
scheduling a task to put the message back on queue after a delay - if configured to, instead
of stopping delivery and a schedule a task to resume delivery again. But I do not possess
an understanding of AMQ thorough enough to predict potential side effects of this, so any
analysis would be helpful.

--
This message is automatically generated by JIRA.
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Mime
View raw message