Hi,We use camel 2.11 version on Linux.We run two instances of camel which
watch on the a directory to pick, process  and move files to processed
directory on successful completion. On error it gets moved to error
directory. We use 'markerFile' as a strategy for read lock.What we observe
is that sometimes a file gets picked by both the instances, resulting in
error.
  File named /A.txt/ gets picked by /Camel 1/ instance and lock file
/A.txt.camelLock/ gets created.
 / Camel 1/ instance reads and finishes processing the file /A.txt/ 
 / Camel 1/ instance deletes /A.txt.camelLock/ 
 / Camel 2/ instance picks /A.txt/ as there is not lock to it now and starts
processing. It creates /A.txt.camelLock/ 
 / Camel 1/ instance moves /A.txt/ to processed dir. 
 / Camel 2/ instance deletes /A.txt.camelLock/ as it finished processing  
 / Camel 2/ faces error as it tries to move /A.txt/ to processed dir as 
/A.txt/ is not available anymore 
 / Camel 2/ faces further error as it tries to move /A.txt/ to error dir
because of previous error and obviously it cannot find  /A.txt/
The problem is /.camelLock/ file gets deleted before the actual files gets
moved to processed dir. And if we flip the order, this race condition should
not happen.Can you help us to understand the reasoning behind this design
and how to avoid this error?



--
View this message in context: 
http://camel.465427.n5.nabble.com/File-markerFile-strategy-race-condition-tp5733561.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to