Skip to content
Advertisement

Spring SFTP : Unable to rename .writing file

I am using Spring SFTP integration to transfer the file and many time I got this error. It seems two threads are trying to transfer same file and conflict with each other

2020-08-03 08:31:55,766 INF [task-scheduler-8 ] o.s.i.ftp.session.FtpSession – File has been successfully transferred from: ./abc.ext.200803
2020-08-03 08:31:55,849 INF [task-scheduler-7 ] o.s.i.ftp.session.FtpSession – File has been successfully transferred from: ./abc.ext.200803
2020-08-03 08:31:55,850 INF [task-scheduler-7 ] .s.i.f.i.FtpInboundFileSynchronizer – Cannot rename ‘/local/download/abc.ext.200803.writing’ to local file ‘/local/download/abc.ext.200803’ after deleting. The local file may be busy in some other process.

Is there a way so both threads should not interfere with each other?

I am using following code –

JavaScript

Advertisement

Answer

You have only this for filtering:

JavaScript

but what about a filter which is going to prevent duplicates on subsequent poll?

See AcceptOnceFileListFilter. And together with that SFTPLastModifiedFileFilter you should use a ChainFileListFilter.

See docs for more info:

https://docs.spring.io/spring-integration/docs/current/reference/html/sftp.html#sftp-inbound

https://docs.spring.io/spring-integration/docs/current/reference/html/file.html#file-reading

User contributions licensed under: CC BY-SA
4 People found this is helpful
Advertisement