对于任何想要尝试的人,这里有一个 DFSORT 步骤,它将生成 1629 个 DD 语句 (SYSOUT=*) 和 1629 个 OUTFIL 语句。
运行步骤。
执行一个只有 OPTION COPY 的 SORT 步骤,并使用 ISPF 编辑器,将数据集从 SYSOUTS 复制到 JCL 部分,并在 OPTION COPY 之后从 OUTFILS 复制数据集。
提交您的工作。如果它以 n 个 IEF649I EXCESSIVE NUMBER OF DD STATEMENTS 失败,则删除最后 n 个 DD 语句和最后 n 个 OUTFIL 语句。如果可行,您可以尝试更多数量的 DD 语句(更改两个 1629),尤其是当您的 TIOT 大小大于 32K 时。使用 64K TIOT,您可能会得到这个数字的两倍多一点。
如果需要一些时间(不会太长),请不要感到惊讶,因为它正在打开、写入记录并关闭所有这些文件。
//LOTSOFOF EXEC PGM=SORT
//SYSOUT DD SYSOUT=*
//OUTFILS DD DISP=(,CATLG),UNIT=SYSDA,SPACE=(TRK,2),
// DSN=your dataset name number 1 here
//SYSOUTS DD DISP=(,CATLG),UNIT=SYSDA,SPACE=(TRK,2),
// DSN=your dataset name number 2 here
//SYSIN DD *
OPTION COPY
OUTFIL REPEAT=1629,
FNAMES=OUTFILS,
BUILD=(C' OUTFIL FNAMES=F',
SEQNUM,4,ZD,
80X)
OUTFIL REPEAT=1629,
FNAMES=SYSOUTS,
BUILD=(C'//F',
SEQNUM,4,ZD,
C' DD SYSOUT=*',
80X)
//SORTIN DD *
ONE LINE NEEDED, CONTENT NOT IMPORTANT
有一个 XTIOT(扩展 TIOT),但它不适用于 QSAM,它有专门的用途,如 DB2。
嗯,反正答案已经知道了。
您可以拥有的 OUTFIL 语句的数量实际上有两个限制。
首先是您的站点在单个作业步骤中允许多少个 DD 名称。询问您的前辈或 Sysprog TIOT 有多大。如果是 32K,您将有大约 1,600 个可用。如果是 64K,则两倍。
第二个限制是您在步骤中拥有的 SORT 控制卡的数量及其复杂性。你仍然可以得到很多。
无论哪种方式,我怀疑您的任务很容易拥有足够多的 OUTFIL 语句。
你想要几个?
对于怀疑者,试试这个链接:https://groups.google.com/forum/#!msg/bit.listserv.ibm-main/km3VNDp0SQQ/Zmh161dcSKcJ
Kolusu 的相关引用是:
DFSORT was able to handle writing up to 999 members into a PDSE
simultaneously. Beyond that I get IEF649I EXCESSIVE NUMBER OF DD
STATEMENTS
表明 DFSORT 在这种情况下仍然很满意,而 z/OS 则不然。 Kolusu 是 DFSORT 的开发者。
如果有更多的否认,我可以找到更多的引述,包括来自现代 DFSORT 的发明家、设计师和开发者的 Frank Yaeger 的很多很多年(现已退休)。