次の制限は、ファイル処理に影響します。
COBOL コンパイラに関連する制限を超えることはできません。ただし、実行時に、オペレーティング システムやハードウェアが COBOL ランタイム システムの操作に影響を与える場合は、コンパイラの制限よりも緩やかな制限が課せられます。さらに、オペレーティング システムまたはハードウェア環境の特定の構成では、コンパイラとランタイム システムの両方の制限よりも緩やかな制限が課せられる場合があります。
ランタイム制限とオペレーティング システム制限は、COBOL コンパイラの制限よりも低い場合があります。
各ファイル (分割キー構成要素を含む) | 255 キー |
分割キーを含む、1 つのキーの長さ | 1016 バイト (512 以下で最適なパフォーマンス) |
分割キーの構成要素数 | 62 |
副キーの数 | 252 |
USING または GIVING ファイルの数 (デフォルトモジュールを使用) |
128 |
(呼び出し可能ソート モジュールを使用) | 255 |
ランタイム制限は、COBOL コンパイラで課せられる制限よりも低い場合があります。
アプリケーションがオープンしているすべてのファイルは、少なくとも 1 つのファイルハンドルを保有しています。このファイルハンドルは、ファイルがオープンされた時、そのファイルに割り当てられる識別子です。Unix オペレーティング システムでは、これらのファイルハンドルはファイル記述子と呼ばれます。
標準入力、標準出力および標準エラーファイルを除いて同時にオープンできるファイルの最大数は、使用している UNIX システムの構成に依存します。使用しているシステムの構成についての詳細は『リリースノート』を参照してください。ファイルのオープンモードも、同時にオープンできるファイルの最大数に影響を及ぼします。INPUT 用にオープンされるファイル数の上限は、UNIX システムで構成されているプロセスごとにファイル最大数までとなります。EXCLUSIVE アクセス用ファイル (たとえば OUTPUT 用にオープンされるファイル) ではファイルのロックが必要であるため、ファイル数の上限は UNIX システムで構成されているプロセスごとにファイルロックの最大数までとなります。これらの 2 つの上限は必� しも同じである必要はありません。
索引付きファイルは、データファイル用に 1 つと索引ファイル用に 1 つ、合わせて 2 つのハンドルを使用します。
ランタイム システムは、通常の操作中にいくつかのファイルハンドルを使用します。その数は、ユーザーが COBOL SORT 文を使用したり、Animator を使ってプログラムを実行すると増加します。
すべてのファイル編成 | 制限は指定できません。レコードサイズとファイルサイズにより異なります。 |
次の中で同じ重複キー値を含むレコード 標準ファイル IDXFORMAT"4" または IDXFORMAT"8"指令を使用 |
65,535 4,294,967,297 |
分割キーの構成要素 (Micro Focus 形式ファイルを使用) (C-ISAM 形式ファイルを使用) |
62 8 |
IDXFORMAT 9 | 4080 バイト |
すべてのファイルタイプ | 62 キロバイト |
注意: IDXFORMAT 9 形式は重複の無い唯一のキーを持ちます。
ソートキーサイズ | 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 モジュールを使用している場合は、キーの数とサイズを制限することができます。