camel-issues mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Andrzej Gdula (JIRA)" <>
Subject [jira] [Commented] (CAMEL-7601) maximumRedeliveries=-1 plus scheduledExecutorService=pool(1 thread) equals problem
Date Wed, 16 Jul 2014 09:29:05 GMT


Andrzej Gdula commented on CAMEL-7601:

I did test that option. It does not guarantee that messages are processed in *order* which
*is requirement* of my project.
The test fails because it expects that when a message in a queue has an exception next message
is not processed until that exceptional condition is over.

    1. I  must not pass message out of order - project specific requirement. 
    2. I have lots of source messages and lots of destinations - need to use thread pool to
limit Threading overhead. 
    3. Some of these outputs are unavailable for some time ( imagine lots of mobile devices
that I could push thing to and they tend to be out of range for most of the time ). 

3'rd point  is not an actual case. I use exceptions as a way to hold processing on one queue
when i detect that processing cannot be done yet. Anyways is a similar situation as in 3.rd


> maximumRedeliveries=-1 plus scheduledExecutorService=pool(1 thread) equals problem
> ----------------------------------------------------------------------------------
>                 Key: CAMEL-7601
>                 URL:
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.12.1, 2.13.2
>            Reporter: Andrzej Gdula
>            Priority: Minor
> Test that demonstrates a problem when
>       onException(SomeException.class).maximumRedeliveries(-1)
>     and
>       scheduledExecutorService=poolOfThreads(X)
> When there are lots of routes using single threadPool and there happen to be more than
X exceptions in X routes that will be redelivered forever
> then thread pool gets hogged and other routes are unable to process.
> Thread are stuck on org.apache.camel.processor.RedeliveryPolicy.sleep(
>   If camel instead of waiting would schedule retry then it probably would solve the problem.

This message was sent by Atlassian JIRA

View raw message