[
https://issues.apache.org/jira/browse/CAMEL-12718?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Claus Ibsen resolved CAMEL-12718.
---------------------------------
Resolution: Invalid
Please ask on user mailing list, gitter chat, or stackoverflow etc.
We tend to keep JIRA tickets about bug reports, improvements etc, and not for
general support
http://camel.apache.org/support.html
> Camel retry optimization on large volume
> ----------------------------------------
>
> Key: CAMEL-12718
> URL: https://issues.apache.org/jira/browse/CAMEL-12718
> Project: Camel
> Issue Type: Improvement
> Components: camel-core
> Reporter: Sunil
> Priority: Major
>
> We are using camel retry in our project. It works fine when number of
> transactions/period is low.
> Our transaction are a ftp process - occassionally we encounter connections
> issues(servers are down etc) - so we have configured for a specific number of
> retry/delay - after which the flows goes to the error processor.
> When there is a large number of transactions (say > 25) that fails and comes
> to retry loop all the same time - then the retry period of each transactions
> goes up...it takes more time for each of transactions to reach to the error
> processor.
>
> We have configured a redeliveryprocessor to gather time statistics - as of
> now what we understand is that -
> a) a transaction goes further and further back in the queue for retry each
> time other failed transactions are added to the queue.
> b) the trigger for retry happens every second . We have added a
> scheduledexecutor service (10 threads to the deadletterChannel builder) -
> however the number of threads does not see increase the frequency of retry -
> since there are lots of transactions waiting for retry - expectation is there
> should be a retry happening as soon as transactions are available for retry
> and not necessarily every 1 sec.
>
> Below is the blueprint snippet for this
>
> <bean class="org.apache.camel.builder.DeadLetterChannelBuilder"
> id="myDeadLetterErrorHandler">
> <property name="deadLetterUri" value="direct:deadletter"/>
> <property name="redeliveryPolicy" ref="myRedeliveryPolicyConfig"/>
> <property name="executorServiceRef" value="redeliveryThreadPool"/>
> <property name="onRedelivery" ref="redelProcessor"/> <!-- we have
> used this for getting statistics of the retry --->
> </bean>
> <bean class="org.apache.camel.processor.RedeliveryPolicy"
> id="myRedeliveryPolicyConfig">
> <property name="maximumRedeliveries" value="${maximum.Redeliveries}"/>
> <property name="redeliveryDelay" value="${redelivery.Delay}"/>
> <property name="asyncDelayedRedelivery" value="true"/>
> <property name="maximumRedeliveryDelay"
> value="${maximum.RedeliveryDelay}"/>
> <property name="backOffMultiplier" value="0"/>
> </bean>
> <bean class="java.util.concurrent.ScheduledThreadPoolExecutor"
> id="redeliveryThreadPool">
> <argument type="int" value="${int}"/>
> <property name="maximumPoolSize" value="${maximum.PoolSize}"/>
> </bean>
>
> Need inputs/advise on how to limit retry delay when large volume of failed
> transactions within a short period
>
--
This message was sent by Atlassian JIRA
(v7.6.3#76005)