Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
tftpPut component error Hi all, I'm using tFTP component in order to upload a file to an SFTP server. Talend returns below error message: Exception in component tFTPPut_1 2: No such file at com.jcraft.jsch.ChannelSftp.throwStatusError(ChannelSftp.java:2846) at com.jcraft.jsch.ChannelSftp._stat(ChannelSftp.java:2198) at com.jcraft.jsch.ChannelSftp._stat(ChannelSftp.java:2215) at com.jcraft.jsch.ChannelSftp.stat(ChannelSftp.java:2172) According to my investigaetion, it seems that the error is raised because our partner monitors the directory and pulls the file before Talend has a chance to go in and confirm or not file upload. So the component produces the error because there is no file for confirmation!!! Is there any "skip" option - any workaround in general - in order to avoid that error or is there any other option to upload the file ? I'm using Talend Open Studio 6.5.1 Regards, Rahul
Hi,
This is a clear case of taking assumptions by client without understanding the underlying technical factors 🙂
Whether client likes it or not, its a reality that for any file transfer process, the file will have to be first created and then the data will be copied to that file.
Now another way is to create the file and transfer the data in target location with altogether different name or with a different extension. Once the data transfer is complete, you can run file rename process using tFTPRename so that file name will be converted to actual name. So in client's visibility, the file got created just at that point.
Please refer the help document for details of this component.
https://help.talend.com/reader/jomWd_GKqAmTZviwG_oxHQ/Ygfnv0gSZjCTp3gLRmxt6A
But the client process should be intelligent enough to pick only the file names with specific naming conventions. They should not do a general sweep to collect all the garbage data from that folder. This part you will have to educate them. If they are still showing defiance, please request them to list out their concerns in the community under this post so that our Talend community members can help them to understand.
Warm Regards,
Nikhil Thampi
Please appreciate our Talend community members by giving Kudos for sharing their time for your query. If your query is answered, please mark the topic as resolved 🙂
Hi Rahul,
This is a classic case of FTP issue where the consumer is trying to pull the record before the producer has moved the file to the target directory. There are multiple ways of remediation for this issue.
a) One of the most popular methods is to send a trigger file along with actual data file. The actual data file may take more time to transfer depending on its file size. Once the actual file is transmitted fully, then only producer fill transfer the trigger file (which will be an empty file with specific name) to indicate that the file transfer is over. Once the consumer identify the trigger file, then they can start pulling the data from the site.
b) Add a trailer record at the actual file to indicate that file transfer is complete. The consumer need to verify whether the trailer record is available before making the full pull of the file.
c) Consumer to poll the size of the file at regular intervals (say 10 or 20 seconds) to make sure that file added by the producer is not growing. If the file has reached a stable size, then consumer can start extracting the file.
There are many other methods also but these are by far the most popular ones. Hope I have answered your query 🙂
Warm Regards,
Nikhil Thampi
Please appreciate our Talend community members by giving Kudos for sharing their time for your query. If your query is answered, please mark the topic as resolved 🙂
Main Prob is client is not willing to check for trailer records or trigger file. They want that whenever we will place file they will not wait or validate anything they will immediately fetch file.Is there any other way using any component to avoid this error?
Hi,
This is a clear case of taking assumptions by client without understanding the underlying technical factors 🙂
Whether client likes it or not, its a reality that for any file transfer process, the file will have to be first created and then the data will be copied to that file.
Now another way is to create the file and transfer the data in target location with altogether different name or with a different extension. Once the data transfer is complete, you can run file rename process using tFTPRename so that file name will be converted to actual name. So in client's visibility, the file got created just at that point.
Please refer the help document for details of this component.
https://help.talend.com/reader/jomWd_GKqAmTZviwG_oxHQ/Ygfnv0gSZjCTp3gLRmxt6A
But the client process should be intelligent enough to pick only the file names with specific naming conventions. They should not do a general sweep to collect all the garbage data from that folder. This part you will have to educate them. If they are still showing defiance, please request them to list out their concerns in the community under this post so that our Talend community members can help them to understand.
Warm Regards,
Nikhil Thampi
Please appreciate our Talend community members by giving Kudos for sharing their time for your query. If your query is answered, please mark the topic as resolved 🙂