Joined: 12 Nov 2008 Posts: 5 Location: Springfield MA
I'm looking for verification that the routing of sysout is behaving per the JCL standard. I have not found within the JCL docs, an explanation of this scenario.
Our coding standard recommends the use of the OUTPUT card along with sysout=(,) in order to obtain specific parameters/options defined on that OUTPUT card; we want all sysout to get those options, and in this case CLASS=J. If we were to rely on MSGCLASS alone, we do not get these parameters/options, though we would still get a sysout class of "J". Thus in the JCL we always have sysout=(,).
A question arises for Procs used in the JCL and within those underlying Procs are DD statements with sysout=*. This sysout refers to MSGCLASS and we do not override the "sysout=*" in the Proc, with "sysout=(,)" in the JCL in question. If I code MSGCLASS=J in my JCL, and the (default) OUTPUT card has the same class of "J", does the JCL interpreter route all sysout=* to the (defaulted) OUTPUT card?
So it seems to me that "sysout=*" in the Proc, goes to MSGCLASS=J, which then goes to OUTPUT CLASS=J.
I have tested this scenario on our system, and it behaves this way, but is that standard behavior?
Thanks.
Joined: 12 Nov 2008 Posts: 5 Location: Springfield MA
Thank you. I have found the section in the JCL manual. I have been interpreting the DEFAULT keyword, and sysout routing, incorrectly. As you stated, if I do not have explicit values on my DD/Sysout statement, it picks up the values from the default OUTPUT card. In the case of sysout=*, it picks up class from MSGCLASS first, and then gets other values (like FORMS) from the default OUTPUT card.