如何在FTP到MainFrame时计算存储空间?我被告知LRECL将永远保持'80'。不确定如何根据文件大小动态计算PRI和SEC ...
QUOTE SITE LRECL=80 RECFM=FB CY PRI=100 SEC=100
答案 0 :(得分:3)
如果网站有短信,你不需要,但如果你需要计算磁道数是文件的大小,以字节为单位除以56,664,或圆柱数是文件的大小字节数除以849,960。在任何一种情况下,你都会围捕。
答案 1 :(得分:2)
不幸的是,IBM的FTP服务器不支持记录数量较新的空间分配规范(JCL参数AVGREC = U / M / K加上记录长度作为SPACE参数中的第一个规范)。
但是,有一种替代方案,那就是回归一个较少使用的SPACE参数 - blocksize规范。为简单起见,我将假设3390种磁盘类型,以及标准数据集。
对于固定长度记录,您希望计算适合半个轨道(27994字节)的最大数字,因为z / OS仅支持最大32760的块大小。由于您正在处理80字节记录,该数字是27290.将您的文件大小除以该数字,这将为您提供块数。然后在SITE服务器命令中指定
SITE BLKSIZE=27920 LRECL=80 RECFM=FB BLOCKS=27920 PRI=calculated# SEC=a_little_extra
这相当于SPACE =(27920,(计算#,a_little_extra))。
z / OS空间分配计算所需的轨道数,并向上舍入到最近的轨道边界。
对于可变长度记录,如果您的阅读应用程序可以处理它,请始终使用BLKSIZE = 27994。我有关于阅读应用程序的警告的原因是,即使在今天,ISV的应用程序仍然具有奇怪的硬编码最大可变长度块,例如12K。
如果您正在处理PDSE,请始终在规范中使用BLKSIZE = 32760作为可变长度,最接近32760作为固定长度(FB / 80为32720),但是根据BLKSIZE = 4096计算要求。 PDSE的底层布局很奇怪;物理记录是4096字节,这是因为有一些线性数据集VSAM代码处理物理I / O.