View previous topic :: View next topic
|
Author |
Message |
David Eisenberg
New User
Joined: 15 Nov 2007 Posts: 39 Location: New York
|
|
|
|
Anyone,
If I want to prevent specific jobs from executing concurrently (assuming that they have different jobnames), I can add a DD statement for a catalogued dataset with DISP=OLD to the //JOBLIB concatenation. Any job that has that DD statement will wait for the previous job to complete. So far, so good.
Is there any equivalent protection in JES3 to prevent concurrent execution of //*NETs, even though the NETs may have different NET ids?
What I'm looking for (I guess) is a way to establish an enqueue at the beginning of a NET which won't be released until the entire NET is complete.
Thanks,
David |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
NETREL=(netid,jobname) is an option on //*NET -- put it on the last job of the network you want to run first. I do not know what happens, however, if the first network has a job abend.
One of the reasons I haven't used DJC networks for 25 years is that they are difficult to work with; one job abend and you're typically better off just flushing the whole network and resubmitting it. I'm not sure how much they have improved over the years but back then we had too many abends to be able to reliably use DJC networks. |
|
Back to top |
|
|
David Eisenberg
New User
Joined: 15 Nov 2007 Posts: 39 Location: New York
|
|
|
|
Robert,
If I understand the NETREL option correctly, it can be used to establish a sequence across DJC networks, but it requires that the names of those networks be explicitly provided. I guess I wasn't clear in what I'm looking for.
I'm not trying to force a particular DJC network to run before another particular one, I just don't want them running concurrently. We have dozens of these networks, all with different NET ids, but what they all have in common is that I don't care what order they run in, as long as only one runs at a time.
Hence my original non-DJC example with DISP=OLD. If I catalogue a dataset called 'FORCE.ENQUEUE.DAVID', and I create fifty different JCL members with that dataset in the JOBLIB concatenation with DISP=OLD, then while I won't have any guarantees about what order the jobs are executed, I can guarantee that only one of the jobs will run at a time. I'm trying to get the equivalent sort of protection, but amongst multiple DJC networks.
I hope this makes sense...
David |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
That makes sense and clarifies things. As far as I'm aware, there's no way to tell JES3 to run one DJC network at a time. You could probably enforce the rule by running them all in a class with one initiator open, but that would pretty much get rid of parallel processing for the networks. |
|
Back to top |
|
|
David Eisenberg
New User
Joined: 15 Nov 2007 Posts: 39 Location: New York
|
|
|
|
>You could probably enforce the rule by running them all in a class with one initiator open, but that would pretty much get rid of parallel processing for the networks.<
Aha! In our situation, that might actually be workable. It's not that I don't want any DJC networks to run concurrently, I just want to ensure that particular ones don't run concurrently. So if I set up the JCL to run those specific ones in the same class, and only run one initator for that class, I'm safe.
Thank you!
David |
|
Back to top |
|
|
Robert Sample
Global Moderator
Joined: 06 Jun 2008 Posts: 8696 Location: Dubuque, Iowa, USA
|
|
|
|
LOL ... glad I could help, I think? Good luck with it! |
|
Back to top |
|
|
David Eisenberg
New User
Joined: 15 Nov 2007 Posts: 39 Location: New York
|
|
|
|
Robert,
You did help!
David |
|
Back to top |
|
|
|