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 | |
| 相対ファイル | 1GB | 1TB | |
| 索引ファイル | 1.7GB | 1TB | |
1GBを超える入力ファイルの読込みを行う場合、LFSの指定をしなくてもデータの読込みが
成功する場合がありますが、動作は保証されません。
なお、ファイルのサイズが2GBを超えるとき、LFS指定をしていない場合には、OPEN文
実行時にエラー(注)となります。
(注)JMP0310I-I/U 'ERFLD=xxxx'が出力されます。
'ERFLD=xxxx'はシステムのerrnoを16進表記で示しています。
| OS | システムのerrno |
|---|---|
| Solaris | 79 (=0x4F) |
| Linux | 75 (=0x3B) |
通常の上限値を超えるファイルを扱う際は、入力、出力いずれの場合も大容量アクセス 指定(LFS指定)をしてください。
