富士通

NetCOBOL 技術情報:ノウハウ情報

NetCOBOL

Solaris, Linux x86

Q

COBOLアプリケーションで扱うファイルのサイズの上限を教えてください。

A

ファイルの種別により上限値が異なります。

レコード順ファイル、行順ファイルおよび相対ファイルの上限は1GBです。
索引ファイルの上限は1.7GBです。
なお、レコード順ファイルと行順ファイルについては、BSAM指定(ビーサム指定)をすることで、上限を2GBに拡張できます。
また、Solaris 2.6以降ではOSがラージファイルに対応していますので、大容量ファイルアクセス指定(LFS指定)をすることで、すべてのCOBOLファイルで、システムの上限1TBまで拡張できます。

COBOLファイルの種別 通常の上限値 大容量ファイルアクセス指定の上限値
レコード順ファイル BSAM指定なし 1GB 1TB
BSAM指定あり 2GB 1TB
行順ファイル BSAM指定なし 1GB 1TB
BSAM指定あり 2GB 1TB
相対ファイル 1GB1TB
索引ファイル 1.7GB1TB

1GBを超える入力ファイルの読込みを行う場合、LFSの指定をしなくてもデータの読込みが 成功する場合がありますが、動作は保証されません。
なお、ファイルのサイズが2GBを超えるとき、LFS指定をしていない場合には、OPEN文 実行時にエラー(注)となります。

(注)JMP0310I-I/U 'ERFLD=xxxx'が出力されます。 'ERFLD=xxxx'はシステムのerrnoを16進表記で示しています。

OS システムのerrno
Solaris 79 (=0x4F)
Linux 75 (=0x3B)

通常の上限値を超えるファイルを扱う際は、入力、出力いずれの場合も大容量アクセス 指定(LFS指定)をしてください。