camel-issues mailing list archives

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

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

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.

Problem.
    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
point.

 


> maximumRedeliveries=-1 plus scheduledExecutorService=pool(1 thread) equals problem
> ----------------------------------------------------------------------------------
>
>                 Key: CAMEL-7601
>                 URL: https://issues.apache.org/jira/browse/CAMEL-7601
>             Project: Camel
>          Issue Type: Bug
>          Components: camel-core
>    Affects Versions: 2.12.1, 2.13.2
>            Reporter: Andrzej Gdula
>            Priority: Minor
>
> https://github.com/agdula/camel-test/blob/master/src/test/java/com/pb/psep/testbase/ThreadPoolTest.java
> 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(RedeliveryPolicy.java:188)
>   If camel instead of waiting would schedule retry then it probably would solve the problem.



--
This message was sent by Atlassian JIRA
(v6.2#6252)

Mime
View raw message