The implementations of the GenericFileConsumer (FileConsumer,
SftpConsumer,...) method, pollDirectory(), make calls to isValidFile() and
if that returns true, calls isInProgress(). This process fails when there
are multiple processes polling. For example when process P0 calls
isValidFile() and the idempotent repository does not have the file entry, it
then calls isInProgress(). But, if process P1, who is in progress for the
file, commits to the idempotent repository and subsequently releases its
entry in the in progress repository, then P0 may obtain an in progress
status and process a file that is now in the idempotent repository.

Should the isInProgress() call be made before the isValidFile() call? This
may have additional overhead of checking the in progress repository, but the
chance for duplicate processing would be removed.



--
View this message in context: 
http://camel.465427.n5.nabble.com/GenericFileConsumer-Idempotent-and-InProgress-repositories-tp5732237.html
Sent from the Camel - Users mailing list archive at Nabble.com.

Reply via email to