![]() | ファイル状態コードテーブル |
次の制限は、ファイル処理に影響します。
COBOL コンパイラに関連する制限を超えることはできません。ただし、実行時に、オペレーティングシステムやハードウェアが COBOL ランタイムシステムの操作に影響を与える場合は、コンパイラの制限よりも緩やかな制限が課せられます。さらに、オペレーティングシステムまたはハードウェア環境の特定の構成では、コンパイラとランタイムシステムの両方の制限よりも緩やかな制限が課せられる場合があります。
ファイルハンドルは、ファイルを開いたときにオペレーティングシステムにより割り当てられる識別子です。アプリケーションで開くすべてのファイルには、最低 1 つのファイルハンドラが必要です。config.sys の FILES パラメータは、一度に開くことができるファイルの最大数を指定します。FILES の最大値は 255 です。COBOL を実行している場合は、FILES パラメータがデフォルトで 100 に設定されます。必要なファイルハンドルの数はアプリケーションによって異なります。必要なファイルハンドル数は、開いているファイルの数と呼び出したプログラムのレベル数などによって決まります。
索引ファイル | 索引ファイルの処理では、2つのファイル (データファイルと索引ファイル) を開く必要があるため、開かれている索引ファイルごとに 2 つのファイルハンドルが使用されます。 |
オーバーレイ | オーバーレイを書き出すときは、常にファイルハンドルを使用します。オーバーレイを書き出すことができる文は、 CALL、GOTO および PERFORM です。オーバーレイは、プログラムを節に分割して (50 以上の数) 指定するときに常に生成されます。また、プログラムの手続き部が 64K を超えている場合に生成される場合があります。
注: オーバーレイが Micro Focus ライブラリファイル (.lbr) から書き出されると、使用されるファイルハンドルは .lbr ファイル用のハンドルになります。 |
ソート | COBOL SORT を実行する場合は、作業ファイルを作成してファイルハンドルをその作業ファイルに割り当てます。 |
アニメーション | アニメーション中は、特定の数の制御ファイルが開かれます。これらのファイルごとに、ファイルハンドルを 1 つ使用します。 |
ネットワーク | デフォルトの最大値 255 よりも厳しい制限が組み込まれているネットワークもあります。ネットワークで実行している場合は、ネットワークシステムのマニュアルを参照して、一度に開くことができるファイルの最大数を確認してください。 |
ランタイム制限とオペレーティングシステム制限は、COBOL コンパイラの制限よりも低い場合があります。
各ファイル (分割キー構成要素を含む) | 255 キー |
分割キーを含む、1 つのキーの長さ | 1016 バイト (512 以下で最適なパフォーマンス) |
分割キーの構成要素数 | 62 |
副キーの数 | 252 |
USING または GIVING ファイルの数 (デフォルトモジュールを使用) |
28 |
(呼び出し可能ソートモジュールを使用) | 255 |
ランタイム制限は、COBOL コンパイラで課せられる制限よりも低い場合があります。
順ファイル、行順ファイル | 環境変数 MAX_FILE_HANDLES で指定します。 |
索引順および相対ファイル | 環境変数 MAX_FILE_HANDLES で指定した数の半分の数 |
これらの最大数には、同時に開かれているライブラリの数も含まれます。
すべてのファイル編成 | 制限は指定できません。レコードサイズとファイルサイズにより異なります。 |
次の中で同じ重複キー値を含むレコード 標準ファイル IDXFORMAT"4" または IDXFORMAT"8"指令を使用 |
65,535 4,294,967,297 |
分割キーの構成要素 (Micro Focus 形式ファイルを使用) (C-ISAM 形式ファイルを使用) |
62 8 |
すべてのファイルタイプ | 62 キロバイト |
ソートキーサイズ | 4096 |
整列キー数 | 64 |
COBOL ファイルハンドラでは、ファイルサイズについていくつかの制限があります。また、UNIX プラットフォームでも 2 ギガバイトのファイルサイズ制限がある場合があります。そのため、ファイルのストライプ化を使用しなければならないことがあります。大きいファイルサイズをサポートする UNIX プラットフォームでも、デフォルトのカーネル設定では2ギガバイト制限を課している場合がよくあります。
注: アプリケーションを Windows アプリケーションシステムに移植する場合は、ファイルサイズの制限が UNIX の制限と異なることに注意してください。Windows のファイルサイズ制限については、Net Express のオンラインヘルプで確認してください。
索引ファイルに影響を与えるファイルサイズ制限は次のとおりです。
固定レコード長ファイルの場合のデフォルトは IDXFORMAT 1 (C-ISAM) で、可変レコード長ファイルの場合のデフォルトは IDXFORMAT 3 です。別の形式のファイルを作成するには、IDXFORMAT 構成オプションまたはコンパイラ指令設定を使用します。既存のファイルを他の形式に変換するには、REBUILD ユーティリティを使用します。
IDXFORMAT | 排他# | 重複キー圧縮の有効にして排他 | デフォルトのロックを共有 |
---|---|---|---|
1 | 4 Gb | 2 Gb | 1 Gb |
2 | 4 Gb | 2 Gb | 1 Gb |
3 | 4GB | 2GB | 1 Gb |
4 | 4GB | 2GB | 1 Gb |
8 (デフォルト) | 128TB | 128TB | 128TB |
8* | 8MTB | 8MTB | 4 MTb |
この場合は、次のようになります。
* | extfh.cfg が FILEPOINTERSIZE=8 に設定されている IDXFORMAT 8 (バイト数で指定。例えば、8 バイトは 64 ビットになります。) |
# | ファイルに排他的にアクセスするか、extfh.cfg を使用する、またはコンパイラ指令設定を LOCKTYPE 1 または 2 に設定して共有ファイルにアクセスします。つまり、LOCKTYPE 1 または 2 を使用してもファイルサイズには影響ありません。 |
注:
32 ビット = 2^32 = 4,294,967,296 バイト = 4GB (ギガバイト)
48 ビット = 2^48 = 281,474,976,710,656 バイト = 256TB (テラバイト)
64 ビット = 2^64 = 18,446,744,073,709,551,616 バイト = 16 MTB (メガテラバイトまたはエクサバイト)
順ファイルおよび相対ファイルに影響を与えるファイルサイズ制限は、次のとおりです。
排他 |
共有 |
---|---|
8MTB | 4MTB |
オペレーティングシステムおよびハードウェア構成では、COBOL コンパイラまたは COBOL ランタイムのどちらかによって課せられている制限よりも低い直接制限が設けられています。オペレーティングシステムおよびハードウェアをチェックして、制限の実際の値を確認してください。ただし、次の点を考慮する必要があります。
非標準ファイルハンドラを使用している場合は索引キーの数とサイズを制限することができ、非標準 SORT モジュールを使用している場合は、キーの数とサイズを制限することができます。
Copyright © 2002 Micro Focus International Limited. All rights reserved.
本書、ならびに使用されている固有の商標と商品名は国際法で保護されています。
![]() | ファイル状態コードテーブル |