Dear support,
We are facing concurrency problems with cTalendJob component. We use TOS ESB 5.6.2.
We have flow cJMS - - > cTalendJob. The Talend job is very straightforward, the problem happens even with such an easy job: tRouteInput - - > tMap - - > tRouteOutput.
Everything works smoothly when we have concurrentConsumers =1 on AMQ JMS endpoint. However, when we increase it to 2 or even more, we are getting null pointer exception for many but not all messages. We use transactional connection factory, so re-try is performed, but it does not seem to have any impact on the error itself.
Similarly, we have another route cFile - - > cConvertBodyTo(string) - - > cSplitter - - (split) - > cTalendJob. Everything goes well until we set parallel processing on the splitter. Then we observe the same behavior.
The behavior is similar in Studio as well as in Karaf.
The exception is following:
java.lang.NullPointerException
at org.talend.camel.TalendProducer.invokeTalendJob(TalendProducer.java:115)
at org.talend.camel.TalendProducer.process(TalendProducer.java:65)
at org.apache.camel.util.AsyncProcessorConverterHelper$ProcessorToAsyncProcessorBridge.process(AsyncProcessorConverterHelper.java:61)
at org.apache.camel.processor.SendProcessor.process(SendProcessor.java:113)
at org.apache.camel.management.InstrumentationProcessor.process(InstrumentationProcessor.java:72)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)
at routines.system.CamelStat$1$1.process(CamelStat.java:56)
at org.apache.camel.processor.DelegateAsyncProcessor.process(DelegateAsyncProcessor.java:91)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:416)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:118)
at org.apache.camel.processor.Pipeline.process(Pipeline.java:80)
at org.apache.camel.processor.RedeliveryErrorHandler.process(RedeliveryErrorHandler.java:416)
at org.apache.camel.processor.CamelInternalProcessor.process(CamelInternalProcessor.java:191)
at org.apache.camel.util.AsyncProcessorHelper.process(AsyncProcessorHelper.java:105)
at org.apache.camel.processor.MulticastProcessor.doProcessParallel(MulticastProcessor.java:708)
at org.apache.camel.processor.MulticastProcessor.access$200(MulticastProcessor.java:82)
at org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:292)
at org.apache.camel.processor.MulticastProcessor$1.call(MulticastProcessor.java:277)
at java.util.concurrent.FutureTask.run(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
at java.lang.Thread.run(Unknown Source)
Thanks for your help. Michal Bureš