1

在一个简单的 JCL 脚本中,我尝试使用 SORT 根据某些条件生成一些类似的数据集。这样,我可以在单个 JCL 中生成多少个输出文件?

4

1 回答 1

3

对于任何想尝试它的人,这里有一个 DFSORT 步骤,它将生成 1629 个 DD 语句 (SYSOUT=*) 和 1629 个 OUTFIL 语句。

运行步骤。

采取一个只有 OPTION COPY 的 SORT 步骤,并使用 ISPF 编辑器,将数据集从 SYSOUTS 复制到 JCL 部分,并在 OPTION COPY 之后将数据集从 OUTFILS 复制。

提交你的工作。如果它以 n-number of 失败,IEF649I EXCESSIVE NUMBER OF DD STATEMENTS则删除最后 n-number DD 语句和最后 n-number 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 语句的数量实际上有两个限制。

第一个是您的站点在单个作业步骤中允许多少个 DDnames。询问您的前辈或 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 许多年(现已退休)。

于 2015-01-28T23:17:57.367 回答