第一篇主要讲三个,SB37,S806,S804
常见的JCL Abend code
- 一 SB37
- 二、S806
- 2.1 没有指定LIB库
- 2.2 没有指定LOAD库
- 三 S804
一 SB37
37系列的错误一般是指卷的空间不够,SB37,SE37,SE37,基本上都是空间不够
如果指的是临时卷,可以换成**(WORK,16),平均的分配到十六个卷中,还可以采用更改TRK数的方式,比方说改成CYL**(预估存储量是TRK的十五倍);如果指定的是固定卷,那么就可以删掉原来卷中的文件,这样就会扩容;另外可以换一个新的内存比较大的卷。
//ANS972S EXEC SRT020
//SORTIN DD DSN=D08769.ACT932.INDD1,
// DISP=SHR
//SORTOUT DD DSN=&&ANS972S,DISP=(,PASS,DELETE),UNIT=(WORK,16),SPACE=(TRK,(100,30),RLSE),DCB=(RECFM=FB,LRECL=500,BLKSIZE=27500)
二、S806
2.1 没有指定LIB库
比方说,如果COPYA这个PGM只在B.LIB中存在,但是下面这段程序中,指定JOBLIB的时候,没有指定B.LIB,就会报806的错误,意思是你需要一个JOBLIB。
//DO8926C JOB '08926,NA999999999','BTT キャリア',
// MSGCLASS=U,NPTIFY=D08926,MSGLEVEL=1,REGION=5000K
//JOBLIB DD DSN=D08926.TSO.DATE,DISP=SHR
// DD DSN=D08926.B223456.LOAD,DISP=SHR
//*--------------------------------------------------------------------*
//*注释信息
//*这个JCL的功能是创建一个新的数据集D08926.GAC0.TEST.OUTDD1
//*--------------------------------------------------------------------*
//XPYYMMDD EXEC PGM=IEFBR14
//*--------------------------------------------------------------------*
//DELETE EXEC PGM=IDCAMS
//SYSPRINT DD SYSOUT=*
//SYSIN DD *DELETE D08926.GAC0.TEST.OUTDD1IF MAXCC=8 THEN SET MAXCC=0
2.2 没有指定LOAD库
一般来说,一个新PGM在新规或者改修后,会指定一个LOAD库,供测试使用,改修还好,因为生产环境中存在寄存的PGM;但是新规的话,不指定LOAD库,JCL在SUB之后,会出现找不到PGM的问题,进而报806
三 S804
Region too small for the PGM,JCL中指定的实存或者虚存大小不能满足PGM实际运行需要。一般新规的JCL不需要指定REGION,但是改修的JCL依据设计规约确定REGION是否保留。
可以通过以下方式设置 REGION :
-
可以在 CICS JCL 的 JOB 语句中指定 REGION 参数。 在这种情况下,作业的每个步骤都在请求的空间量中运行。
-
您可以在 CICS的 EXEC 语句 (程序执行行) 中指定 REGION 参数。 在这种情况下,每个步骤都以自己的空间量运行。 如果不同步骤需要大量不同的空间,请使用 EXEC 语句而不是 JOB 语句。 例如,如果在 CICS 关闭后使用额外的作业步骤来打印辅助跟踪数据集 (如 DFHIVPOL 安装验证过程) ,那么可以使用 EXEC 语句。
-
确定 REGION 参数的最大值:
-
使用 RMF 或其他存储器监视器来确定专用区域的大小。
-
应用以下公式:
Maximum possible REGION = Size of private area- Size of system region (16K)- (LSQA + SWA + subpools 229 and 230)
-