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

Announcements
Qlik Open Lakehouse is Now Generally Available! Discover the key highlights and partner resources here.
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