Hi Willem,

If I set waitForTaskToComplete=Alway or
waitForTaskToComplete=IfReplyExpectet SEDA will will not handover the
completions, but it will also block and wait for the exchange to be
processed and the it will complete the exchange. So in this case, if there
is no seda consumer to process the exchange, the seda producer will be
blocked and waiting for timeout.

waitForTaskToComplete=Never is a little better, it is not blocking the seda
producer, but it hands over the completions too. In that case the seda
producer is not blocked and can process other exchanges, but this causes
issues with some components (like the file consumer) which relies on the
completions to be completed before processing the next exchange.

What I propose is additional option, which will be used to control whether
the completions to be handed over or not when waitForTaskToComplete=Never
is set.

Thanks
Bilgin


On 22 February 2013 08:06, Willem jiang <willem.ji...@gmail.com> wrote:

> It looks like you need to set the option waitForTaskToComplete=Alway or
> waitForTaskToComplete=IfReplyExpected to make sure the Seda component
> doesn't hand over the completions.
> I think current Camel feature just make sure the file isn't deleted until
> the file is processed.
>
>
> --
> Willem Jiang
>
> Red Hat, Inc.
> FuseSource is now part of Red Hat
> Web: http://www.fusesource.com | http://www.redhat.com
> Blog: http://willemjiang.blogspot.com (http://willemjiang.blogspot.com/)
> (English)
>           http://jnn.iteye.com (http://jnn.javaeye.com/) (Chinese)
> Twitter: willemjiang
> Weibo: 姜宁willem
>
>
>
>
>
> On Friday, February 22, 2013 at 1:12 AM, Bilgin Ibryam wrote:
>
> > Hi,
> >
> > I have a route where I consume from a file endpoint and put them in VM
> > endpoint, so that another camel route from different camel app can
> process
> > it a little later asynchronously.
> >
> > The file endpoint has move=processed for removing the processed files,
> but
> > even the exchanges are delivered to VM endpoint, the exchange is not
> > considered completed, so the original file stays locked and cannot
> process
> > other files before I start the second camel application and process the
> > exchanges from VM endpoint.
> >
> > SEDA has waitForTaskToComplete option, which controls whether the caller
> > should wait for the async task to complete or not before continuing. But
> > even when waitForTaskToComplete=Never is set, the completions are handed
> > over to VM queue, so it is not possible to complete the exchange.
> >
> > Is there a way to complete the exchange when it is put in VM queue? Or
> > there is a possibility for extending SEDA component with additional
> option
> > for not handling over the completions when waitForTaskToComplete=Never is
> > set?
> >
> > WDYT
> > Bilgin
>
>
>
>

Reply via email to