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
