The ftp component does not support idempotent read locks, so you
cannot do what you do.

On Sun, Nov 22, 2020 at 8:05 AM Robin Vanderhallen
<[email protected]> wrote:
>
> Hi,
>
> I’m using file and FTP consumer endpoints (Camel 2.22.1) in a clustered 
> setup, backed with Hazelcast and write-through persistence using the 
> following endpoint options:
> idempotent=true&idempotentRepository=#hazelcastIdempotentRepository&idempotentKey=#keyExpression&readLock=idempotent-changed
>  for the file endpoint
> idempotent=true&idempotentRepository=#hazelcastIdempotentRepository&idempotentKey=#keyExpression&readLock=changed
>  for the FTP endpoint
>
> I discovered that there is a difference in the behaviour of both endpoints:
>
> file component: confirm method is invoked after processing the files
> FTP component: confirm method is not invoked after processing the files
>
> When readLock=idempotent-changed is set on the file endpoint, 
> FileIdempotentChangedRepositoryReadLockStrategy is being used and the 
> releaseExclusiveReadLockOnCommit method is
> invoked which triggers the confirm method on the idempotent repository.
> According to the Camel docs this type of read lock is not supported by the 
> FTP component. In my setup FtpChangedExclusiveReadLockStrategy is being used, 
> which is never invoking the confirm method
> on the idempotent repository (releaseExclusiveReadLockOnCommit is an empty 
> method).
>
> I read the following in the Camel in Action book: To commit the Exchange, the 
> confirm method is invoked on the idempotent repository
>
> Does this imply that the Exchange is never committed in case of the FTP 
> component. Is this expected behaviour?
>
> Thanks,
>
> Robin



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

Reply via email to