Search code examples
mainframezosjcl

How to find JCL MSGCLASS=?


I am working on a basic JCL script from the IBM publib.boulder site. Below is the JCL that simply sorts a list of characters in ascending order. The job executes just fine, but the contents of SYSIN are not printed to the job status, as is shown in the publib demonstration

Here is my code:

//SORT JOB OTIMPF01,CLASS=A,MSGCLASS=H 
/*                                     
//STEP1 EXEC PGM=SORT                  
//SYSIN DD *  SORT   FIELDS=(1,75,CH,A)
/*                                     
//SYSOUT  DD   SYSOUT=*                
//SYSIN   DD   *                       
NEPTUNE                                
PLUTO                                  
EARTH                                  
VENUS                                  
MERCURY                                
MARS                                   
URANUS                                 
SATURN                                 
JUPITER                                
/*                                     
//SORTOUT  DD SYSOUT=*                 
/* 

I know that it has something to do with the MSGCLASS= statement. The sample code from publib uses MSGCLASS=H, and I was told that that is different depending on who set the option on the mainframe. My question is, how can I figure out what my mainframe's MSGCLASS is set to without having to ask anyone? Again, I just want the result of the characters sorted in ascending order to be displayed in the job status.

It should look like this...

ICE134I 0 NUMBER OF BYTES SORTED: 720 
 ICE180I 0 HIPERSPACE STORAGE USED = 0K BYTES 
 ICE188I 0 DATA SPACE STORAGE USED = 0K BYTES 
 ICE052I 0 END OF DFSORT   
 EARTH 
 JUPITER    
 MARS 
 MERCURY 
NEPTUNE                                                                                    
 PLUTO 
 SATURN  
 URANUS 
 VENUS 

...Only my job status read-out does not display the characters Earth through Venus in the output of the job status.

My job status looks like this...

IEF373I STEP/STEP1   /START 2014002.1033                                                                                           
IEF374I STEP/STEP1   /STOP  2014002.1033 CPU    0MIN 00.00SEC SRB    0MIN 00.00SEC VIRT   212K SYS   248K EXT       8K SYS   11592K
IEF375I  JOB/SORT    /START 2014002.1033                                                                                           
IEF376I  JOB/SORT    /STOP  2014002.1033 CPU    0MIN 00.00SEC SRB    0MIN 00.00SEC                                                 
ICE000I 1 - CONTROL STATEMENTS FOR 5694-A01, Z/OS DFSORT V1R5 - 10:33 ON THU JAN 02, 2014 -                                        
ICE010A 0 NO SORT OR MERGE CONTROL STATEMENT                                                                                       
ICE751I 0 C5-K05352 C6-Q95214 E7-K90000                                                                                            
ICE052I 3 END OF DFSORT   

I imagine it has to do with properly setting the MSGCLASS. I have tried Googling z/OS MSGCLASS and to no surprise, it comes up with very little.


Solution

  • The key problem is ICE010A 0 NO SORT OR MERGE CONTROL STATEMENT. Assuming you transcribed your JCL correctly here, you typed:

    //SYSIN DD *  SORT   FIELDS=(1,75,CH,A)
    /*
    

    In which case, you presented an empty input stream to SORT, because the SORT FIELDS=(1,75,CH,A) was treated as a comment on the DD statement.

    You should have typed:

    //SYSIN DD *
      SORT   FIELDS=(1,75,CH,A)
    /*