MainFrame に FTP 接続するときのストレージの計算方法を教えてください。LRECL は常に「80」のままであると言われました。ファイルサイズに基づいて PRI と SEC を動的に計算する方法がわかりません...
QUOTE SITE LRECL=80 RECFM=FB CY PRI=100 SEC=100
サイトに SMS がある場合は、その必要はありませんが、トラック数を計算する必要がある場合は、ファイルのサイズ (バイト単位) を 56,664 で割った値、またはシリンダー数 (シリンダー数) をファイルのサイズ (バイト単位) を で割った値です。 849,960。どちらの場合でも、切り上げます。
残念ながら、IBMのFTPサーバーは、レコード数の新しいスペース割り当て仕様をサポートしていません(JCLパラメーターAVGREC = U / M / Kに、SPACEパラメーターの最初の指定としてのレコード長を加えたもの)。
ただし、別の方法があります。それは、あまり使用されないSPACEパラメーターの1つであるブロックサイズ指定にフォールバックすることです。簡単にするために3390のディスクタイプと標準のデータセットを想定します。
固定長レコードの場合、z / OSは最大32760のブロックサイズしかサポートしないため、トラックの半分(27994バイト)に収まる最大数を計算する必要があります。80バイトのレコードを処理しているため、その数は次のようになります。 27290.ファイルサイズをその数で割ると、ブロック数がわかります。次に、SITEサーバーコマンドで、
SITE BLKSIZE=27920 LRECL=80 RECFM=FB BLOCKS=27920 PRI=calculated# SEC=a_little_extra
これは、SPACE =(27920、(calculated#、a_little_extra))と同等です。
z / OSスペース割り振りは、必要なトラック数を計算し、最も近いトラック境界に切り上げます。
可変長レコードの場合、読み取りアプリケーションがそれを処理できる場合は、常にBLKSIZE=27994を使用してください。読み取りアプリケーションについて警告がある理由は、今日でも、12Kなどの奇妙なハードコードされた最大可変長ブロックを持つISVのアプリケーションがあるためです。
PDSEを扱っている場合は、仕様で常に可変長の場合はBLKSIZE = 32760を使用し、固定長の場合は32760に最も近いもの(FB / 80の場合は32720)を使用しますが、BLKSIZE=4096に基づいて要件を計算します。PDSEは、基礎となるレイアウトがおかしいです。物理レコードは4096バイトです。これは、物理I/Oを処理する線形データセットVSAMコードがあるためです。