JCL 严重消息
JCL SEVERE MESSAGES
我在尝试编译我的程序时收到这些错误消息:
IEW2747S D90C 异常终止 013-18 在使用 DD 处理顺序数据集时发生
IEW2230S 0414 模块没有文本。
IEW2677S 5130 无法确定有效的入口点。
IEW2008I 0F03 处理完成。 RETURN代码=12。
这是 JCL:
000100 //IBMP5 JOB (COMPILE),USERID,MSGCLASS=H,REGION=0M,
000200 // MSGLEVEL=(1,1),CLASS=A,NOTIFY=&SYSUID
000300 //*******************************************************************
000400 //* *
000401 //* THIS JCL WILL COMPILE, LINK-EDIT (BIND) AND RUN A PROGRAM *
000402 //* *
000410 //*******************************************************************
000420 //* COMPILATION STEP
000430 //*
001100 //STEP1 EXEC PGM=IBMZPLI,REGION=1M,PARM=('MACRO,OBJECT,INSOURCE')
001200 //STEPLIB DD DSNAME=IEL380.SIBMZPRC,DISP=SHR
001201 // DD DSNAME=IEL380.SIBMZCMP,DISP=SHR
001204 //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(2,1))
002000 //SYSPRINT DD SYSOUT=*
002010 //SYSOUT DD SYSOUT=*
002100 //*
002510 //* SOURCE CODE MEMBER
002520 //*
002530 //PLI.SYSIN DD DSN=INVAT.SOURCE(PROG5),DISP=SHR
002531 //*
002532 //* TARGET FOR OBJECT FILE
002535 //*
002536 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=(OLD,PASS),UNIT=SYSALLDA,
002537 // SPACE=(CYL,(1,1)),DCB=(LRECL=80,BLKSIZE=800)
002540 //*
002541 //* LINKAGE (BIND) STEP
002542 //*
002550 //STEP2 EXEC PGM=IEWL,REGION=0M
002560 //SYSLIB DD DSNAME=SYS1.LINKLIB,DISP=SHR
002570 // DD DSNAME=CEE.SCEELKED,DISP=SHR
002580 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=SHR
002590 //LKED.SYSLMOD DD DSN=INVAT.LOAD(PROG5),DISP=SHR
002600 //SYSUT1 DD UNIT=SYSALLDA,SPACE=(TRK,(10,10))
002700 //SYSPRINT DD SYSOUT=*
002800 //*
002900 //* EXECUTION STEP
003000 //*
003100 //STEP3 EXEC PGM=PROG5
003200 //STEPLIB DD DSN=INVAT.LOAD(PROG5),DISP=SHR
003300 //SYSPRINT DD SYSOUT=*
003400 //SYSIN DD *
003800 /*
003900 //
通常(在我看过的所有编译JCL中)SYSLMOD,不指定成员。所以你那一行看起来像这样:
//SYSLMOD DD DSN=INVAT.LOAD,DISP=SHR
然后在此之下,您将在 sysin 中包含该成员:
//LKED.SYSIN DD *
ENTRY PROG5
NAME PROG5(R)
/*
所有这些加在一起会给你这样的东西:
000100 //IBMP5 JOB (COMPILE),USERID,MSGCLASS=H,REGION=0M,
000200 // MSGLEVEL=(1,1),CLASS=A,NOTIFY=&SYSUID
000300 //*******************************************************************
000400 //* *
000401 //* THIS JCL WILL COMPILE, LINK-EDIT (BIND) AND RUN A PROGRAM *
000402 //* *
000410 //*******************************************************************
000420 //* COMPILATION STEP
000430 //*
001100 //STEP1 EXEC PGM=IBMZPLI,REGION=1M,PARM=('MACRO,OBJECT,INSOURCE')
001200 //STEPLIB DD DSNAME=IEL380.SIBMZPRC,DISP=SHR
001201 // DD DSNAME=IEL380.SIBMZCMP,DISP=SHR
001204 //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(2,1))
002000 //SYSPRINT DD SYSOUT=*
002010 //SYSOUT DD SYSOUT=*
002100 //*
002510 //* SOURCE CODE MEMBER
002520 //*
002530 //PLI.SYSIN DD DSN=INVAT.SOURCE(PROG5),DISP=SHR
002531 //*
002532 //* TARGET FOR OBJECT FILE
002535 //*
002536 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=(OLD,PASS),UNIT=SYSALLDA,
002537 // SPACE=(CYL,(1,1)),DCB=(LRECL=80,BLKSIZE=800)
002540 //*
002541 //* LINKAGE (BIND) STEP
002542 //*
002550 //STEP2 EXEC PGM=IEWL,REGION=0M
002560 //SYSLIB DD DSNAME=SYS1.LINKLIB,DISP=SHR
002570 // DD DSNAME=CEE.SCEELKED,DISP=SHR
002580 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=SHR
002590 //SYSLMOD DD DSN=INVAT.LOAD,DISP=SHR
002600 //SYSUT1 DD UNIT=SYSALLDA,SPACE=(TRK,(10,10))
002700 //SYSPRINT DD SYSOUT=*
//LKED.SYSIN DD *
ENTRY PROG5
NAME PROG5(R)
/*
002800 //*
002900 //* EXECUTION STEP
003000 //*
003100 //STEP3 EXEC PGM=PROG5
003200 //STEPLIB DD DSN=INVAT.LOAD(PROG5),DISP=SHR
003300 //SYSPRINT DD SYSOUT=*
003400 //SYSIN DD *
003800 /*
003900 //
试试看是否有帮助。
编辑:
您遗漏并最终修复此 JCL 的是我添加到 link 编辑 (LKED) 步骤的 SYSIN 行(一行用于 ENTRY,一行用于 NAME)。基本上 link 编辑步骤(这是编译的最后一步,负责将编译后的代码复制到 loadlib)发生的事情不知道条目名称或您尝试编译的程序的名称.您已经指定了一个 SYSIN,但由于 SYSIN 为空,您收到了错误消息,指出模块没有文本。
我在尝试编译我的程序时收到这些错误消息:
IEW2747S D90C 异常终止 013-18 在使用 DD 处理顺序数据集时发生
IEW2230S 0414 模块没有文本。
IEW2677S 5130 无法确定有效的入口点。
IEW2008I 0F03 处理完成。 RETURN代码=12。
这是 JCL:
000100 //IBMP5 JOB (COMPILE),USERID,MSGCLASS=H,REGION=0M,
000200 // MSGLEVEL=(1,1),CLASS=A,NOTIFY=&SYSUID
000300 //*******************************************************************
000400 //* *
000401 //* THIS JCL WILL COMPILE, LINK-EDIT (BIND) AND RUN A PROGRAM *
000402 //* *
000410 //*******************************************************************
000420 //* COMPILATION STEP
000430 //*
001100 //STEP1 EXEC PGM=IBMZPLI,REGION=1M,PARM=('MACRO,OBJECT,INSOURCE')
001200 //STEPLIB DD DSNAME=IEL380.SIBMZPRC,DISP=SHR
001201 // DD DSNAME=IEL380.SIBMZCMP,DISP=SHR
001204 //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(2,1))
002000 //SYSPRINT DD SYSOUT=*
002010 //SYSOUT DD SYSOUT=*
002100 //*
002510 //* SOURCE CODE MEMBER
002520 //*
002530 //PLI.SYSIN DD DSN=INVAT.SOURCE(PROG5),DISP=SHR
002531 //*
002532 //* TARGET FOR OBJECT FILE
002535 //*
002536 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=(OLD,PASS),UNIT=SYSALLDA,
002537 // SPACE=(CYL,(1,1)),DCB=(LRECL=80,BLKSIZE=800)
002540 //*
002541 //* LINKAGE (BIND) STEP
002542 //*
002550 //STEP2 EXEC PGM=IEWL,REGION=0M
002560 //SYSLIB DD DSNAME=SYS1.LINKLIB,DISP=SHR
002570 // DD DSNAME=CEE.SCEELKED,DISP=SHR
002580 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=SHR
002590 //LKED.SYSLMOD DD DSN=INVAT.LOAD(PROG5),DISP=SHR
002600 //SYSUT1 DD UNIT=SYSALLDA,SPACE=(TRK,(10,10))
002700 //SYSPRINT DD SYSOUT=*
002800 //*
002900 //* EXECUTION STEP
003000 //*
003100 //STEP3 EXEC PGM=PROG5
003200 //STEPLIB DD DSN=INVAT.LOAD(PROG5),DISP=SHR
003300 //SYSPRINT DD SYSOUT=*
003400 //SYSIN DD *
003800 /*
003900 //
通常(在我看过的所有编译JCL中)SYSLMOD,不指定成员。所以你那一行看起来像这样:
//SYSLMOD DD DSN=INVAT.LOAD,DISP=SHR
然后在此之下,您将在 sysin 中包含该成员:
//LKED.SYSIN DD *
ENTRY PROG5
NAME PROG5(R)
/*
所有这些加在一起会给你这样的东西:
000100 //IBMP5 JOB (COMPILE),USERID,MSGCLASS=H,REGION=0M,
000200 // MSGLEVEL=(1,1),CLASS=A,NOTIFY=&SYSUID
000300 //*******************************************************************
000400 //* *
000401 //* THIS JCL WILL COMPILE, LINK-EDIT (BIND) AND RUN A PROGRAM *
000402 //* *
000410 //*******************************************************************
000420 //* COMPILATION STEP
000430 //*
001100 //STEP1 EXEC PGM=IBMZPLI,REGION=1M,PARM=('MACRO,OBJECT,INSOURCE')
001200 //STEPLIB DD DSNAME=IEL380.SIBMZPRC,DISP=SHR
001201 // DD DSNAME=IEL380.SIBMZCMP,DISP=SHR
001204 //SYSUT1 DD UNIT=SYSDA,SPACE=(CYL,(2,1))
002000 //SYSPRINT DD SYSOUT=*
002010 //SYSOUT DD SYSOUT=*
002100 //*
002510 //* SOURCE CODE MEMBER
002520 //*
002530 //PLI.SYSIN DD DSN=INVAT.SOURCE(PROG5),DISP=SHR
002531 //*
002532 //* TARGET FOR OBJECT FILE
002535 //*
002536 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=(OLD,PASS),UNIT=SYSALLDA,
002537 // SPACE=(CYL,(1,1)),DCB=(LRECL=80,BLKSIZE=800)
002540 //*
002541 //* LINKAGE (BIND) STEP
002542 //*
002550 //STEP2 EXEC PGM=IEWL,REGION=0M
002560 //SYSLIB DD DSNAME=SYS1.LINKLIB,DISP=SHR
002570 // DD DSNAME=CEE.SCEELKED,DISP=SHR
002580 //SYSLIN DD DSN=INVAT.OBJ(PROG5),DISP=SHR
002590 //SYSLMOD DD DSN=INVAT.LOAD,DISP=SHR
002600 //SYSUT1 DD UNIT=SYSALLDA,SPACE=(TRK,(10,10))
002700 //SYSPRINT DD SYSOUT=*
//LKED.SYSIN DD *
ENTRY PROG5
NAME PROG5(R)
/*
002800 //*
002900 //* EXECUTION STEP
003000 //*
003100 //STEP3 EXEC PGM=PROG5
003200 //STEPLIB DD DSN=INVAT.LOAD(PROG5),DISP=SHR
003300 //SYSPRINT DD SYSOUT=*
003400 //SYSIN DD *
003800 /*
003900 //
试试看是否有帮助。
编辑:
您遗漏并最终修复此 JCL 的是我添加到 link 编辑 (LKED) 步骤的 SYSIN 行(一行用于 ENTRY,一行用于 NAME)。基本上 link 编辑步骤(这是编译的最后一步,负责将编译后的代码复制到 loadlib)发生的事情不知道条目名称或您尝试编译的程序的名称.您已经指定了一个 SYSIN,但由于 SYSIN 为空,您收到了错误消息,指出模块没有文本。