我正在从IBM站点开发一个基本的publib.boulder脚本。下面是简单地按升序排列字符列表的JCL。作业执行得很好,但是SYSIN的内容没有打印到作业状态,如耻骨演示所示
这是我的代码:
//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=*
/* 我知道这与MSGCLASS=语句有关。发布库中的示例代码使用MSGCLASS=H,我被告知这是不同的,这取决于在大型机上设置选项的人。我的问题是,我如何才能不问任何人就能弄清楚我的主机的MSGCLASS设置的是什么?同样,我只希望在作业状态中显示按升序排序的字符的结果。
应该是这样的..。
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我的工作状态读出不显示字符地球通过金星在输出的作业状态。
我的工作状况是这样的..。
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 我认为这与正确设置MSGCLASS有关。我已经尝试过搜索z/OS MSGCLASS,而毫不奇怪,它很少出现。
发布于 2014-01-02 22:39:16
关键问题是ICE010A 0 NO SORT OR MERGE CONTROL STATEMENT。假设您在这里正确地转录了JCL,那么您输入:
//SYSIN DD * SORT FIELDS=(1,75,CH,A)
/*在这种情况下,您向SORT提供了一个空输入流,因为SORT FIELDS=(1,75,CH,A)被视为对DD语句的注释。
你应该输入:
//SYSIN DD *
SORT FIELDS=(1,75,CH,A)
/*发布于 2014-01-02 21:28:44
在SDSF中尝试ST作业名,它将显示所有输出。ST是作业的状态,显示系统上提交或完成的所有作业的所有输出。
另外,如果您正在查看已保存的队列H作业名,然后查看它为您显示的作业输出类,并尝试将msgclass更改为所保存队列上显示的类之一。例如,在我的系统中,我可以在被保持的队列中看到类X和H,但只有当我使用ST命令时才能看到A类
发布于 2014-01-03 12:20:27
实际上,您在链接到的手册页面中发现了一个文档错误。但是,您也引入了自己的错误。
对于已安装的大型机排序包(可能是IBM的DFSORT或竞争的SyncSort,但也可能是进一步的竞争对手CA排序):
//SYSIN DD whatever就是你放控制卡的地方。
在上面,无论什么都可以是*,数据或实际数据集的参数。
用于对您使用的排序程序输入的DDNAME是SORTIN:
//SORTIN DD whatever (same as above)你也不小心做了那个SYSIN。它应该是:
//SYSIN DD *
NEPTUNE
PLUTO
EARTH
VENUS
MERCURY
MARS
URANUS
SATURN
JUPITER 然后,您应该在SORTOUT假脱机文件中看到示例中的输出。
还有其他的DDs,当您使用排序(如MERGE、JOINKEYS、OUTFIL)做其他事情时,它们可以或确实使用不同名称的DDs。也可以重写标准名称,但您无法将它们重写为SYSIN。
//SYSIN DD *有点像STDIN,但不要对比较感到迷惑。按照惯例,许多大型机实用程序使用SYSIN作为输入。如果JCL流包含没有DDName前面的“卡片”,那么将自动生成SYSIN的DDName。COBOL对于输入类型有一个接受动词,默认的DD是SYSIN。但是,简单地在JCL中包含一个SYSIN作为一个步骤并不能保证它将被使用。如果EXEC上的程序不使用SYSIN,那么简单地包含SYSIN不会导致从那里读取数据。
https://stackoverflow.com/questions/20888782
复制相似问题