Hi

You can use shuffle=true to randomize the file order to spread the
chance of clash.

But when having competing consumers on the same file share you can end
up with clashes.
You can use a distributed coordinator which is covered in the 2nd ed
of the Camel book in the transactional chapter. And as well in the
upcoming chapter on clustering.



On Mon, Mar 13, 2017 at 3:47 PM, Stephan Burkard <sburk...@gmail.com> wrote:
> Hi Camel riders
>
> I have a quite simple polling file consumer that runs fine on 2 instances.
>
> from(fileEndpointUri)
> .routeId(routeId)
> .log("[FILEREADER " + routeId + "], file: ${in.header.CamelFileName}")
> .setBody(method(bomProcessor, "removeBomIfPresent"))
> .to(jmsEndpointUri);
>
>
> The fileUri options are:
> - initialDelay=[random-range]
> - delay=[configurable]
> - antFilterCaseSensitive=false
> - antInclude=*.xml
> - preMove=processing
> - delete=true
> - moveFailed=../error
>
> I generate a random start delay to avoid both consumers running at the same
> time. However sometimes they overlap and want to process the same file.
>
> In this case I see normal processing in the logfile of one instance and an
> error in the log of the other instance. So it works perfectly. With one
> small flaw: the marker files of Camel (whatever.camelLock) are not deleted.
> That makes the operation guys nervous.
>
> Can I do something so that these marker files are deleted? Is this kind of
> a misconfiguration of my file endpoint?
>
> Thanks a lot
> Stephan



-- 
Claus Ibsen
-----------------
http://davsclaus.com @davsclaus
Camel in Action 2: https://www.manning.com/ibsen2

Reply via email to