Have in mind the IdempotentConsumer registers an IdempotentOnCompletion for
each new added exchange in the repository.

Will the following work?:
We register an EventNotifier which will react on failed exchanges for a
give route. This custom EventNotifier is executed before the
onCompleation() is executed. So we can remove the IdempotentOnCompletion
from the exchange in our custom EventNotifier after we have executed it
synchronous. Right?

Best,
Christian


On Thu, Apr 4, 2013 at 5:37 PM, Raul Kripalani <r...@evosent.com> wrote:

> BTW - In this Exchange Notifier, I suppose you'd call
> Exchange.handoverCompletions() to retrieve the Synchronizations, and then
> execute them straightaway.
>
> But I'm not 100% sure. Just a suggestion.
>
> Regards,
>
> *Raúl Kripalani*
> Enterprise Architect, Open Source Integration specialist, Program
> Manager | Apache
> Camel Committer
> http://about.me/raulkripalani | http://www.linkedin.com/in/raulkripalani
> http://blog.raulkr.net | twitter: @raulvk
>
> On Thu, Apr 4, 2013 at 4:28 PM, Raul Kripalani <r...@evosent.com> wrote:
>
> > Hi Christian,
> >
> > I solved this once by using an ExchangeNotifier that processes the
> > Exchange Completed events.
> > The callback is executed synchronously.
> >
> > Mind you, there was a similar thread a few weeks ago, where more options
> > were presented. But I'm still doubtful about some of them being
> synchronous
> > (and I haven't had time to dig into the code to verify it).
> >
> > Regards,
> >
> > *Raúl Kripalani*
> > Enterprise Architect, Open Source Integration specialist, Program Manager
> > | Apache Camel Committer
> > http://about.me/raulkripalani | http://www.linkedin.com/in/raulkripalani
> > http://blog.raulkr.net | twitter: @raulvk
> >
> > On Thu, Apr 4, 2013 at 4:22 PM, Christian Müller <
> > christian.muel...@gmail.com> wrote:
> >
> >> Camel version 2.8.0
> >>
> >> We have a web servive route which use an idempotent repository (JDBC) to
> >> prevent duplicates. If the processing of one exchange failed, the entry
> is
> >> removed from the idempotent repository in the async onCompleation()
> >> execution.
> >>
> >> From time to time we have the issue, that when the client send the
> request
> >> again after only a few milli seconds, the entry wasn't removed from the
> >> repository and processed as a duplicate.
> >>
> >> Is there a way to process the onCompleation() synchronously (before the
> >> web
> >> service response is send back)?
> >>
> >> Thanks in advance,
> >> Christian
> >>
> >
> >
>

Reply via email to