Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
We have an Oracle database server but run Talend in a Windows 12 environment (Remote Engine and Studio). We have been loading the table with a tFileInputDelimited component and inserting with a tOracleInput, but this is now taking too long. We thought that using the tOracleBulkExec would improve performance. We SFTP a file to be inserted into an Oracle table as well as a control file to the Oracle server. When we run tOracleBulkExec to load the table, we get the error below. I have tried using the tFTPList filepath, change the system property for file.separator to "/", and a number of other options. The component always reverts back to the windows formatted path. Any thoughts?
screenshot of Studio job attached
.-------------------------------|
| tLogRow_2 | |
|=------------------------------|
|current_filepath |
|=------------------------------|
|/home/dbftp/q2_account.csv1.ctl| from tFTPList_1
'-------------------------------|
/ System.getProperty("file.separator") set in tJavaFlex_1
/home/dbftp/q2_account.csv1.ctl
Exception in component tDBBulkExec_1 (dept_load_daily_Q2_files_Bulk)
java.io.FileNotFoundException: \home\dbftp\q2_account.csv1.ctl (The system cannot find the path specified)
at java.io.FileInputStream.open0(Native Method)
at java.io.FileInputStream.open(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileInputStream.<init>(Unknown Source)
at java.io.FileReader.<init>(Unknown Source)
at bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk.tDBBulkExec_1Process(dept_load_daily_Q2_files_Bulk.java:3925)
at bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk.tJavaFlex_1Process(dept_load_daily_Q2_files_Bulk.java:3760)
at bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk.tFTPFileList_1Process(dept_load_daily_Q2_files_Bulk.java:3593)
at bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk.runJobInTOS(dept_load_daily_Q2_files_Bulk.java:9391)
at bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk.main(dept_load_daily_Q2_files_Bulk.java:8871)
[ERROR] 20:19:06 bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk- tDBBulkExec_1 - \home\dbftp\q2_account.csv1.ctl (The system cannot find the path specified)
[FATAL] 20:19:06 bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk- tDBBulkExec_1 \home\dbftp\q2_account.csv1.ctl (The system cannot find the path specified)
java.io.FileNotFoundException: \home\dbftp\q2_account.csv1.ctl (The system cannot find the path specified)
at java.io.FileInputStream.open0(Native Method) ~[?:1.8.0_271]
at java.io.FileInputStream.open(Unknown Source) ~[?:1.8.0_271]
at java.io.FileInputStream.<init>(Unknown Source) ~[?:1.8.0_271]
at java.io.FileInputStream.<init>(Unknown Source) ~[?:1.8.0_271]
at java.io.FileReader.<init>(Unknown Source) ~[?:1.8.0_271]
at bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk.tDBBulkExec_1Process(dept_load_daily_Q2_files_Bulk.java:3925) [classes/:?]
at bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk.tJavaFlex_1Process(dept_load_daily_Q2_files_Bulk.java:3760) [classes/:?]
at bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk.tFTPFileList_1Process(dept_load_daily_Q2_files_Bulk.java:3593) [classes/:?]
at bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk.runJobInTOS(dept_load_daily_Q2_files_Bulk.java:9391) [classes/:?]
at bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk.main(dept_load_daily_Q2_files_Bulk.java:8871) [classes/:?]
[ERROR] 20:19:06 bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk- tcld_cloud_log_1_tLogCatcher_1 - tLogCatcher failed to process log message(s) due to internal error: routines.system.api.TActionFailureException: dept_load_daily_Q2_files_Bulk:tDBBulkExec_1: java.io.FileNotFoundException:\home\dbftp\q2_account.csv1.ctl (The system cannot find the path specified)
routines.system.api.TActionFailureException: dept_load_daily_Q2_files_Bulk:tDBBulkExec_1: java.io.FileNotFoundException:\home\dbftp\q2_account.csv1.ctl (The system cannot find the path specified)
at bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk.tcld_cloud_log_1_tLogCatcher_1Process(dept_load_daily_Q2_files_Bulk.java:2534) [classes/:?]
at bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk$TalendException.printStackTrace(dept_load_daily_Q2_files_Bulk.java:562) [classes/:?]
at bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk$TalendException.printStackTrace(dept_load_daily_Q2_files_Bulk.java:542) [classes/:?]
at bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk$TalendException.printStackTrace(dept_load_daily_Q2_files_Bulk.java:542) [classes/:?]
at bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk.runJobInTOS(dept_load_daily_Q2_files_Bulk.java:9398) [classes/:?]
at bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk.main(dept_load_daily_Q2_files_Bulk.java:8871) [classes/:?]
Hello,
Please make sure that your file must be present on the database server.
Did you try to copy the file via SFTP e.g. to the server and than start the bulk import?
Are you using the same file path in both tOracleOutputBulk and tOracleBulkExec?
Best regards
Sabrina
I did use an sftp to get the file from the tOracleOutputBulk file path to the Linux Database server. That worked and I could see the file with a tFTPFileList. The path for the tFTPPut, tFTPFileList, and the tOracleBulkExec are all the same. For the tOracleBulkExec I have tried using a character for the forward slash (and adding it to the String path), using a context for the slash and the whole path. None of those have worked for me.
Hello,
On which talend build version you got this issue?
If the file is located on a remote machine, it should be a UNC path.
In Java to allow UNC Path, simply write
as network path separator
\\Network\directory\file
-> \\\\Network\\directory
Best regards
Sabrina
We are using Studio 7.3.1 build R2021-09
When I use //server/home/dbftp/q2_account.csv1.ctl
I get this - [ERROR] 10:46:10 bi.dept_load_daily_q2_files_bulk_0_8.dept_load_daily_Q2_files_Bulk- tDBBulkExec_1 - \\server\home\dbftp\q2_account.csv1.ctl (The network path was not found)
so it is translating my Linux path to Windows.
Do you have any other thoughts on this?
Hello,
We are supposing that there is something wrong with your setting of Talend Cloud context parameters.
Have you already checked this online documentation about: TalendHelpCenter: Resource parameters
Best regards
Sabrina