我该如何使用IEBGENER?

时间:2009-04-14 12:44:44

标签: cobol mainframe utilities jcl

我在弄清楚如何让IEBGENER以我想要的方式工作时遇到了一些麻烦。我应首先说明我在学术大型机上的z / OS环境中运行IEBGENER。

我有三个JCL过程(PROC)内联到我正在使用的一些COBOL代码,我需要IEBGENER作为将我的PROC放入“我的MVS ID下的永久过程库”的第一步,以及将我的COBOL源“放入我的MVS ID下的永久顺序数据集”。

教师提到“记得为这些数据集编写正确的LRECL和BLKSIZE信息。”

我对IEBGENER不是很熟悉,也没有发现任何真正向我解释如何做我想做的事情。

任何“大铁”人都能帮忙吗?

7 个答案:

答案 0 :(得分:5)

如上所述,IEBGENER是一个复制程序。它在SYSUT1上输入并“生成”它以输出数据集SYSUT2。在您的实例中,由于您要复制2个文件,因此最简单的步骤是2个GENER步骤,每个步骤生成一个输出数据集。

这里唯一棘手的部分是以正确的格式获取输出数据集。所以,为了进入proclib,假设它目前没有编目,你的SYSUT2看起来像这样:

//SYSUT2  DD  DSN=&SYSUID.PROCLIB,
//            DISP=(NEW,CATLG,DELETE),
//            DCB=(RECFM=FB,LRECL=80,DSORG=PO)

源输出的顺序数据集看起来类似,但DCB选项上没有DSORG子参数。 PO的选项表示创建PDS而不是QSAM文件。在现代z / OS安装中,BLKSIZE不需要编码,因为如果不指定BLKSIZE,系统将计算最佳大小。

答案 1 :(得分:4)

这是如何使用IEBGENER(如上所述,应该在IBM docs网站上):

//COPY EXEC PGM=IEBGENER
//SYSUT1 DD DSN=MY.INPUT.FILE,DISP=SHR
//SYSUT2 DD DSN=MY.OUTPUT.FILE,DISP=NEW,SPACE=....
//SYSIN DD DUMMY

IEBGENER是“只是一个”复制程序,它只需输入文件,输出文件和控制文件

我不确定您认为“具体”是什么,是不是只知道要使用哪个名称?

编辑:如果你想要的是内联定义你的输入,试试这个:

//SYSUT1 DD *
...
/*

或者更好的是,如果您的输入也包含JCL:

//SYSUT1 DD DATA,DELIMITER=XX
...
XX

但JCL仍然不是特别的。

答案 2 :(得分:2)

以下是IBM Z / OS手册的链接 http://www-03.ibm.com/systems/z/os/zos/bkserv/v1r10books.html 搜索JCL,你会发现JCL的手册。 IEBGENER是IBM提供的复制程序,用于将数据从一个数据集(文件)复制到另一个数据集。您将拥有输入文件,输出文件和控制文件。 LRECL和BLKSIZe是数据集参数。如果输入文件和输出文件参数不匹配,则可能无法正确复制数据。我完全不明白你的问题。你能详细说明你需要用IEBGENER做什么。

答案 3 :(得分:2)

一些小问题:

  

DCB =(RECFM = FB,LRECL = 80,DSORG = PO)

不再需要DCB =,只需要代码

  

RECFM = FB,LRECL = 80,DSORG = PO

此外:

  

因为记录是固定格式的,   BLKSIZE必须是偶数倍   通常,人们使用价值   3120.其原因是   隐藏在古代的迷雾中。一世   倾向于使用27920,以获得最大的收益   3390上有效的空间使用   设备

没有必要为新的DASD(光盘)数据集指定块大小。系统确定的blockize将自动为您提供最佳的块大小(对于3390的LRECL为80,确实是27920)

答案 4 :(得分:2)

这样您就不必担心DCB参数,这是指向输入数据集中的值的好方法。

//STEP100  EXEC PGM=IEBGENER
//SYSPRINT DD SYSOUT=*
//SYSUT1   DD DISP=SHR,DSN=INPUT.FILE
//SYSUT2   DD DSN=OUTPUT.FILE,
//           DISP=(,CATLG,DELETE),
//           SPACE=(TRK,(300,50),RLSE),
//           DCB=*.SYSUT1
//SYSIN    DD DUMMY

答案 5 :(得分:0)

听起来好像您的教练提醒您将正确的LRECL和BLKSIZE提供给“永久性过程库”和“永久性顺序数据集”。历史上,这样的数据集是RECFM = FB,LRECL = 80。

因为记录是固定格式的,所以BLKSIZE必须是80的偶数倍。很多时候,人们使用3120的值。其原因隐藏在古代的迷雾中。我倾向于使用27920,以便在3390设备上获得最有效的空间使用。

答案 6 :(得分:0)

IEBGENER是IBM最被低估和误解的工具之一。

以下是最佳文档的超链接:IEBGENER

IEBGENER不仅仅是一个只能复制的文件到文件实用程序。它可以轻松,高效地创建可变阻塞文件。它可以通过适当的缓冲实际上是你最快的文件到文件复制实用程序,因为它曾经很好地内部缓冲,虽然现在我相信它是如此现在自动只是最快。 // @ SYSPRINT消息 - 遗憾的是 - 如果不是真的令人讨厌荒谬的话,它们是非常神秘的。许多商店都有一个名为BETERGENER的加速器,因为大多数程序员都不知道如何缓冲IEBGENER,因为IBM正在迎合那些希望MVS看起来像Windows并且像Windows一样行事的新程序员,使用IEBGENER更加用户友好。 yuck