Why have my JCL symbols stopped working?

I have some JCL which backs up datasets, and passes in today’s date.

//IBMBAKU  JOB 1,MSGCLASS=H,MSGLEVEL=(2,1)              
//** IBS1 JCLLIB ORDER=USER.Z25D.PROCLIB
// SET TODAY=D&YYMMDD
//SG2 EXEC PROC=BACKUP,DD=&TODAY,P=COLIN.PKIICSF.C

Where YYMMDD is a dynamic symbol containing today’s date.

This JCL invokes

//BACKUP   PROC P='USER.Z24C.PROCLIB',DD='UNKNOWN' 
//S1 EXEC PGM=IKJEFT01,REGION=0M,
// PARM='XMIT A.A DSN(''&P'') OUTDSN(''BACKUP.&DD..&P'')'
//SYSPRINT DD SYSOUT=*
//SYSTSPRT DD SYSOUT=*
//SYSTSIN DD *
// PEND

This passes in the string D260630, which can be used in the PARM statement.

The XMIT creates a data set BACKUP.D260630.COLIN.PKIICSF.C incorporating today’s date.

Nothing new here.

It was a month or so ago that I last used it – and it worked fine.

Today it did not work! The reason was I had changed to a different z/OS image without “standard” configuration.

The JES2 definitions for the job classes needs SYSSYM=ALLOW

I did this on the console

 $T JOBCLASS(a),SYSsym=allow

and my JCL started working again.

I changed my JES2 definitons in SYS1.PARMLIB(HASJES2) to have

/****************************************************************** 
* JOBCLASS Definitions
*******************************************************************/
JOBCLASS(A) COMMAND=DISPLAY,SYSSYM=ALLOW

so the definitions work after the next IPL.

Leave a comment