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

Announcements
Join us in NYC Sept 4th for Qlik's AI Reality Tour! Register Now
cancel
Showing results for 
Search instead for 
Did you mean: 
Anonymous
Not applicable

Reg: tBufferInput and tBufferOutput

Hi,
If I design my job like below. How many times will father jobs reads the source? 1 time or 6 times?

child job :
tOracleInput-->tMap-->tBufferOutput
father job 1:
tRunJob(run the child job)--->tMap--tfilerRow--tMap--tOracleOutput
father job 2:
tRunJob(run the child job)--->tMap--tfilerRow--tMap--tOracleOutput
father job 3:
tRunJob(run the child job)--->tMap--tfilerRow--tMap--tOracleOutput
father job 4:
tRunJob(run the child job)--->tMap--tfilerRow--tMap--tOracleOutput
father job 5:
tRunJob(run the child job)--->tMap--tfilerRow--tMap--tOracleOutput
father job 6:
tRunJob(run the child job)--->tMap--tfilerRow--tMap--tOracleOutput

To my understanding whenever my father jobs getting executed, child job executed first.
If my 6 father jobs are using same child jobs at same time, it means my child job executed 6 times, which is nothing but reading the same source 6 times. Am I right?
I don't know how it works in Talend. Expecting some replies for this post
Thanks
Naju
Labels (2)
6 Replies
Anonymous
Not applicable
Author

Hello Naju
In your case, the child job is executed 6 times, because you are using 6 tRunJob to call the child job 6 times. If you want the child job only executed one time and read the same source 6 times, using 1 tBufferOutput in the father job to store the source into memory and 6 tBufferInput to read the same source, the job looks like:
child job :
tOracleInput-->tMap-->tBufferOutput
father job:
tRunJob(run the child job)-->tBufferOutput_1
|
onsubjobok
|
tBufferInput_1--->tMap--tfilerRow--tMap--tOracleOutput
|
onsubjobok
|
tBufferInput_2--->tMap--tfilerRow--tMap--tOracleOutput
|
onsubjobok
|
tBufferInput_3--->tMap--tfilerRow--tMap--tOracleOutput
|
onsubjobok
|
tBufferInput_4--->tMap--tfilerRow--tMap--tOracleOutput
|
onsubjobok
|
tBufferInput_5--->tMap--tfilerRow--tMap--tOracleOutput
|
onsubjobok
|
tBufferInput_6--->tMap--tfilerRow--tMap--tOracleOutput
Best regards
Shong
alevy
Specialist
Specialist

Or use one tBufferInput and then tReplicate
Anonymous
Not applicable
Author

It's possible to call a subjob that starts with a tBufferInput like this?
father job:
tRunJob(run the child job)-->tBufferOutput_1
|
onsubjobok
|
tRunJob(start with tBufferInput component)-->tLogRow_1
Anonymous
Not applicable
Author

Hi
No, it is impossible, to pass flow from father job to child job, you need use context variables, see
https://community.talend.com/t5/Design-and-Development/Passing-context-parameters-in-a-tRunJob/td-p/...
or use joblet feature in Talend Integration Suite.
Best regards
Shong
Anonymous
Not applicable
Author

Could be an alternative call the subjob as an inline job?
What I want to say with this, is to drag the job from repository list to the designer.
There will be a difference between inline job mode and this?
Thanks in advance.
Anonymous
Not applicable
Author

Hi
Yes, you can drag the joblet from palette to the designer as you drag a component. The joblet works as a part of main job.
Best regards
Shong