Page 1 of 1

ISD Output without waiting for job to finish

Posted: Mon Nov 30, 2015 4:16 pm
by babbu9
Hi
I have a datastage Sequence(Seq1) that I invoke from a job (jobA) using job control in job properties.
JobA is enabled for web services and runs in multi instance mode. Whenever this job is invoked using a web service, the output response is not being sent back to the calling service until the sequence Seq1 is completed.

I need a response sent back to the calling web service that the job has been invoked so that the web services does not have to wait for the sequence to complete.

Secondly, I donot want the sequence to be run simultaneously while it is still executing.

How do I accomplish these tasks?

Posted: Mon Nov 30, 2015 5:00 pm
by ray.wurlod
Add a path to the sequence such that it can finish immediately the job has finished.

Posted: Tue Dec 01, 2015 8:57 am
by babbu9
The sequence has 10 underlying jobs and it takes a few hours to process.

Can you please elaborate on your response.

Posted: Tue Dec 01, 2015 9:48 am
by eostic
More detail is needed.

What kind of an ISD Job is this? Is it an enabled Job that has ONLY an ISDOutput Stage?

How are you calling it? Are you calling it from a web based SOAP client? ...or from inside of another DataStage Job?

..etc.

Ernie

Posted: Tue Dec 01, 2015 5:48 pm
by babbu9
I am calling the main Sequence using a dummy job (job A) that is enabled for information services. The jobs in the sequence are not enabled for webservice calls.

JobA > Sequence1 with 10 underlying jobs.

Job A is being invoked using WSDL by IBM Business Process Manager. Job A does not have any stages in it. It calls the Sequence using Job Control in the job properties.

I want Job A to send a response back to the calling application as soon as it receives a call without waiting for the sequence to finish.

Posted: Tue Dec 01, 2015 10:20 pm
by eostic
how are you calling the Job? Are you using DSUtilityRunJob? If so, create your own edition of that routine (grab the source code from it so you can hack it). Look at it carefully...get rid of the "wait" that is at the end of it. You will have to learn a bit about how job control calls work within UV/Basic, but it is not hard, and it is documented...

If that is not how you are running the Job from the ISD Job, please provide more detail. The most common scenario is to have an ISD Job, with ISDInput to Transformer to ISDOutput....in that transformer, kick off "other" jobs using DSUtilityRunJob.

Ernie

Posted: Wed Dec 02, 2015 9:19 am
by babbu9
I am not using DSUtilityRunJob. The invocation is done through a SOAP request from IBM Business Process Manager.

Posted: Wed Dec 02, 2015 4:16 pm
by eostic
That is not what I asked.....

...Job Sequences cannot be deployed as Services....so if you are calling an ISD enabled Job via SOAP, how is "that" Job calling your Job Sequence?

...that's one question.

Next question...the Job that you are calling via SOAP....does it have an ISDInput and an ISDOutput Stage, or does it only have an ISDOutput Stage?

Ernie

Posted: Wed Dec 02, 2015 4:21 pm
by eostic
I see now...you have it in the thread above. You are using Job Control in the Job Properties...

Ok....well...that "generated" Job Control code may be using the "wait" by default.......you will need to disable that to have it not wait...the individual Job Control commands are capable....I can't remember if the "pick list" code that you can use generates the wait or not. You can confirm that by looking carefully at the code, or someone else on the forum may know off the top of their head. I won't have time to review that behavior right now.

Ernie