IBM MTM 2019: Part Two – Challenge #13

Challenge the 13th, spooky.

Now now, don’t be scared. I’m here to help. Let’s learn a thing or two about the system utilities z/OS has to offer. Besides that, let’s also fix some JCL syntax errors our intern Kevin has made.

It’s been 10 days! Sorry for that, IRL and work has left me with no spare energy to do all this. I have noticed I gained a lot of e-mail subscribers and I would like to give you a heads-up to also check your spam folder 🙂

z/OS System Utilities & JCL Syntax Error Correction

IBM Master the Mainframe 2019 Part Two – Challenge #13

Let’s get started! We first need to get the required data set for this challenge. We can get this by issuing the primary command tso submit ‘zos.public.jcl(ch13)’ from the ISPF option menu. Choose a random job character if prompted for one, I chose ‘a’.

TIP: if you choose to use this blog, you can actually skip all the submitting and debugging and read what needs to be done.

Oh no, the intern made a mistake. I guess we senior mainframe developers will have to fix this issue. Let’s debug and see which syntax error has been made.

Let’s jump to the status display using =sd ; st primary command from the ISPF option menu. Then enter line command ? in the NP column next to our job. At last, we select the JESYSMSG to see what our errors are.

There we go. Now, let’s see.

There are some unindentifiable characters in this JCL. I guess it has something to do with PGMPATH. But who can tell? It’s just a guess 😉 Let’s copy the JCL to our personal data set, execute it, fix it, rinse and repeat until we have fixed all of the errors.

A full description of what this JCL job does is provided on the challenge page.

For a change I have provided a ton of screenshots. I first navigate to the DSLIST utility using =3.4 and then I filter by my id. After that I edit my JCL data set and create a new member using primary command s ch13. In CH13 I copy ‘zos.public.jcl(ch13)’ into it. Now let’s execute using submit ; =sd ; st and after review the output like we did before.

Again the same error we saw before. Let’s investigate both.

I have searched for the string ‘pgm’ in this file. And what do we notice? All other PGM’s are UPPERCASE. The odd one out is LOWERCASE, make it UPPERCASE.

Same for ‘path‘. Change it to PATH. Let’s submit it again and check what the next error is.

Ok, I have already noticed this issue but decided to go ahead and show it to you guys. Because I like you.

There are three DSORGs that need to be changed and one disposition field. Let’s change these. You notice that on the screenshot above we need to use the correct DSORG for SEQuential datasets. Then pick the right one for the other type of data sets. This exercise is almost the same as challenge 9 from last year.

Observe the change I made. The sequential data set needs the type PSPS stands for physical sequential. The other two require DSORG PO. PO is the data set organization for both PDSEs and PDSs. DSNTYPE is used to distinguish between PDSEs and PDSs.

Now let’s submit again.

Again an error! This is getting tiresome! It looks lik the code is crashing at FILENAME IS (/z/zzzzzz/ch13). That doesn’t look like our filename. Ours is different, in my case it’s /z/z50087/ch13. Let’s change it again! Something tells me this is not the last error. I’m going all the way.

I have changed the PATH. Now let’s execute again and see what the next error is.

Ok it seems there’s a validation error. [email protected] is strange isn’t it?

We need to change [email protected] to PDS. Do that and submit.

Another error! Verb name [email protected] I suspect somebody’s cat has taken a walk on their keyboard. Specifically on the @ button. It might have been a really small cat. But REALLY small. It should actually be REPRO instead of [email protected]

Change and submit!

I have the MAXCC=0000 code so that must mean everything is ok! Let’s quickly check our P2.OUTPUT file!

The file is here! We have completed challenge 13 of part 2!


I’m doing this because of my personal interest in mainframe. I don’t have a job in mainframes, I mainly develop in PHP and Node.js. Personally, I don’t really know what keeps me this motivated about mainframes and blogging. But I like it.

What are you motivated for? Why are you interested in mainframes?

27 thoughts on “IBM MTM 2019: Part Two – Challenge #13

  1. Hi Kevin,
    Hope you’re ok. I am not with the contest but I here to have a chance to learn IBM z mainframe. I am actually following your instructions and I fund it really very helpful. Thank you to you. I am now on this Part 2 Challenge #13. I believe I have already followed strickly to the very last. But on the last submission which I believe I should not be getting is I got this error. Hope you could help me.

    RETURN CODE IS (00000081) REASON CODE IS (0594003D)
    FILENAME IS (/z/Z58858/CH13)

        1. Hi Kevin,

          Sorry for the delayed response. I was to pre-occupied with answering the rest of the challenges.

          The error was the “z” in my FILENAME IS (/z/Z58858/CH13) is upper case. Which unix Operating system could not read or find.


  2. This is the last one of my challenges to complete and i’m stuck. I keep trying to start over but it goes back to an old file. Is there any way to start this one fresh?

    1. Hi Jordan

      I’m not completely sure about this but I believe you can grab the datasets again and it will overwrite the old one. This is done with the tso submit ‘zos.public.jcl(ch13)’ command.

      After that delete your ch13 member in your JCL data set, this can be done using the line command ‘d‘ I believe. It could be ‘p‘ too. Then just copy the data into ch13 again with copy ‘zos.public.jcl(ch13)’.

      I hope this helps, stay safe!
      – Kevin

  3. Hi Kevin;
    I follow your hints because I want to see how to do things first, I am student and I want to get a remote job, I want to learn every day, please tell me how to reset challenge 12 and restart doing it because I stuck in it, SCOREP says INCORECT, so left it and went to challenge 13.
    Thank you!

  4. Hello Kevin,

    In the output file, I have everything you have with the exception of three things.
    in lines 0004, 0006, and 0008 where it says
    mine says
    Does it matter? It still shows incomplete on the score.
    Please help

  5. Hello Kevin,

    In the output file, I have everything you have with the exception of three things.
    in lines 0004, 0006, and 0008 where it says
    mine says
    Does it matter? It still shows incomplete on the score.
    Please help

  6. Hi Kevin,
    Yes it’s like the CH9 last year contest, but far more tricky. I don’t know what do you think but this year is more “complicated” and less help appears. And I found that slack manage less questions than last year.
    Anyway CH13 is done!
    Thank you!

    1. Hi Georges

      I believe this year is a bit easier than last year, but that might have something to do with me already having some experience.

      I have checked part 3 its challenges and they seem much easier than last year. They have a lot more REXX exercises and I love that.

      By the way, thanks for the kind comments 🙂

      – Kevin

  7. Hi there,

    While you are doing a great job by sharing this, do you think it’s a good idea ? As it’s very much possible that some people might just be getting full solutions from here rather than doing the challenges themselves and so may not be learning as much as they are supposed to be without questioning their honesty. As you know there is an official slack for Master the Mainframe where issues are discussed but there also people avoid telling the full solutions.

    1. Hi Bob

      I fully understand your concerns.

      But I believe the people that genuinely want to learn mainframes will not look at my blog. Those are the people that really aim to work in the field. There are also people that learn better by seeing how it’s done first, that’s how I prefer to learn as it’s more time efficient.

      People don’t post full solutions on Slack as people who visit it don’t aim to get answers, but hints or general help. When you stumble upon my blog, you either choose to read the answers or leave the page.

      There are quite possibly people who will misuse these solutions to quickly get their certificate, but they will lack confidence and sooner or later they will succumb to the imposter syndrome effect.

      I make these blogs for myself as blogging motivates me to learn things. Even without readers I would continue to write this blog. I’m not saying you have implied that, but my intentions are not to hurt this contest.

      Kind regards,
      – Kevin

    2. Hi Bob,
      I understand your fair-play, but if someone want to learn something by his own, is gonna search the help/advice anywhere. Here Kevin is helping people who’s looking for solutions, in plain English! If you think this is cheating then don’t read anything from him. Simple.

    3. Bob,
      did you ever consider that some people are forced to join the mainframe contest as an assignment and literally have no interest in IBM as a company? We are graded as a class by a teacher who has not changed his curriculum in the last couple of years. Kevin is helping us as students and we greatly appreciate what he is doing.
      Please just worry about yourself.

  8. Hello Kevin. All right? I need your help. My work is correct. Now that you have published yours, I came here and checked, and it seems to me to be identical. However, I still receive the “incorrect” status message.
    The reason is probably because I can’t send the job correctly, because my p2.output (# 13) is different from yours. Help me please.
    Thank you very much in advance.


    1. Hi Egmon

      I have had a quick look at your screenshots and everything looks fine, strange! Did you check your job output and all of its members to see if any of them tell you there’s an error? What’s your MAXCC code? Any error message after executing the job?

      I don’t have access to the mainframe right now, but I’ll be able to help you out more this evening.

      Kind regards,
      – Kevin

        1. Hi Egmon

          Do we need to issue ‘rep p2.output (ch13)’? I would delete ch13 and do it over again to see if it fixes the issue. I can’t really help out more, your solutions look correct.

          If it isn’t fixed, then I would suggest to ask for help on Slack.

          Kind regards,
          – Kevin

Leave a Reply

Your email address will not be published. Name, email and website not required.