Skip to main content
Announcements
SYSTEM MAINTENANCE: Thurs., Sept. 19, 1 AM ET, Platform will be unavailable for approx. 60 minutes.
cancel
Showing results for 
Search instead for 
Did you mean: 
lennelei
Creator III
Creator III

List of components/routines/etc failing on parallel executions?

Hi,

 

Which Talend DI components/routines/etc should not be used in parallel operations?

 

For example, if Numeric.sequence() is used in combination with "parallel execution" (on job settings) or after a parallel iterates (on iterate link settings), it can produce unpredictable results (probably because it's using java.util.Map which is not thread safe).

 

Very simple test :

0683p000009MA61.png

tLoop iterates from 1 to 1000. Iterate link runs 10 parallelized tJava_1.

Codes of both tJava components are :

//tJava_1:
Numeric.sequence("s",1,1);

//tJava_2:
System.out.println(Numeric.sequence("s",0,0));

Without parallelism, output is 1000 as expected.

But enabling parallelism will give unpredictable results ; on my computer, it's usually between 9995 and 9998.

 

As not thread safe java classes are used in other components as well, I'd like to know if someone (maybe at Talend) can give the exact list of components/routines/... that should not be used in parallel operations.

 

Thank you.

 

Regards.

Labels (3)
1 Reply
lennelei
Creator III
Creator III
Author

For information, I have the same issue with chained tRest :

tRest > tExtractJSONFields > tFlowToIterate > tRest > tExtractJSONFields...

I don't know where, but the json extraction failed when parallel iterate is used!