Do not input private or sensitive data. View Qlik Privacy & Cookie Policy.
Skip to main content

Announcements
Write Table now available in Qlik Cloud Analytics: Read Blog
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

[resolved] Running Talend jobs parallelly

Hi All,
I tried to run two sub jobs in parallel as shown in the image. Both the tOracleOutput components
are connecting to different tables in the same database(but they do not use a tOracleConnection).
Then I checked the 'Multi thread execution' option in the Run View of the job and started running the job.
Only one of the jobs ran successfully and the other failed with the following error. Does anyone has a solution for this?
Exception in component tOracleOutput_3
java.sql.SQLException: Invalid number format for port number
at oracle.jdbc.driver.SQLStateMapping.newSQLException(SQLStateMapping.java:70)
at oracle.jdbc.driver.DatabaseError.newSQLException(DatabaseError.java:131)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:197)
at oracle.jdbc.driver.DatabaseError.throwSqlException(DatabaseError.java:525)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:413)
at oracle.jdbc.driver.PhysicalConnection.<init>(PhysicalConnection.java:508)
at oracle.jdbc.driver.T4CConnection.<init>(T4CConnection.java:203)
at oracle.jdbc.driver.T4CDriverExtension.getConnection(T4CDriverExtension.java:33)
at oracle.jdbc.driver.OracleDriver.connect(OracleDriver.java:510)
at java.sql.DriverManager.getConnection(Unknown Source)
at java.sql.DriverManager.getConnection(Unknown Source)
at test.data_mig_demo_0_1.DATA_MIG_DEMO.tOracleInput_4Process(DATA_MIG_DEMO.java:5885)
at test.data_mig_demo_0_1.DATA_MIG_DEMO$3.run(DATA_MIG_DEMO.java:7176)
Caused by: oracle.net.ns.NetException: Invalid number format for port number
at oracle.net.resolver.AddrResolution.resolveSimple(AddrResolution.java:499)
at oracle.net.resolver.AddrResolution.resolveAndExecute(AddrResolution.java:396)
at oracle.net.ns.NSProtocol.establishConnection(NSProtocol.java:630)
at oracle.net.ns.NSProtocol.connect(NSProtocol.java:206)
at oracle.jdbc.driver.T4CConnection.connect(T4CConnection.java:966)
at oracle.jdbc.driver.T4CConnection.logon(T4CConnection.java:292)
... 8 more
0683p000009ME6r.png
Labels (4)
14 Replies
Anonymous
Not applicable
Author

Hi Sabrina,
I don't think it matters. Since in Java, ((String)globalMap.get(?targetDBHost?)) and (String)globalMap.get(?targetDBHost?) results in the same output. If you see the generated Java code you can make sure that these two are identical.
Thanks,
Thivanka.
Anonymous
Not applicable
Author

Hi,
Could you please try to add another tSetGlobalVar_3 in your tOracleOutput_3 subjob with same setting(Host, port...)so that in case that tOracleOutput_3 can not get the global variable when the whole job is under the condition of Multi thread execution. (The 3 subjobs will be executed in a same time).
Best regards
Sabrina
Anonymous
Not applicable
Author

I think that your globalMap variables are still"empty" as your subjob start at the very first time of your job. (the green starting component tell me that)
Talend process begin & try to open connection to your Oracle DB before works with data.
link with onSubjobOk instead of a parallel execution.
regards
laurent
ps : Sabrina tell it better & faster than I 0683p000009MA9p.png
Anonymous
Not applicable
Author

Thanks Sabrina and Laurent.
You are correct. I tried removing the onSubjobOk link from tFileInputXML_2 to FINXML_ACTIVITY. Then both tOracleOutputs didnt work which means that when all the sub jobs starts running in parallel, the variables required for tOracleOutputs have not been initialized. So what I can do is to create a new tSetGlobalVar_3 and link the subjob with it.
Anonymous
Not applicable
Author

Hi asthiwanka,
If you want to mask your DB connection info, you can refer to tcontextload component reference with a scenario TalendHelpCenter: Reading data from different MySQL databases using dynamically loaded connection pa....
Best regards
Sabrina