Unlock a world of possibilities! Login now and discover the exclusive benefits awaiting you.
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 :
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.
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!