COBOL2002 使用の手引 手引編

[目次][用語][索引][前へ][次へ]

6.11.2 ファイルバッファサイズ指定機能(HP-UX(IPF),AIX(32),AIX(64),Linux(x86),Linux(x64)で有効)

ファイルバッファサイズ指定機能を使用すると,COBOLのファイル入出力機能で使用するファイルのバッファサイズを,使用する環境に合わせて任意に指定できます。バッファサイズを大きくすることで,ファイルに対する物理的な入出力回数を減らすことができ,性能向上を目的としたチューニングが可能となります。

この機能を使用しない場合,COBOLではファイルのバッファサイズを4,096バイトに設定します。

この機能は,次に示すファイルを対象としています。

この機能の作用対象を次に示します。

OPENモード INPUT OUTPUT EXTEND I-O
WITH LOCK
指定
あり なし あり なし あり なし あり なし
LOCK MODE句の指定 なし × ×
EXCLUSIVE × ×
AUTOMATIC ×※2 ×※2 × ×
MANUAL※1 ×※2 ×※2 × ×

(凡例)
○:この機能の対象
×:この機能の対象外

注※1
順編成ファイル(COBOL入出力サービスルーチン機能も含む)およびテキスト編成ファイルの場合は,LOCK MODE句にMANUAL指定はできません。

注※2
CSV編成ファイルの場合は,この機能の対象(○)となります。

<この項の構成>
(1) 環境変数の指定
(2) 指定例(Bシェル)
(3) 規則
(4) 注意事項

(1) 環境変数の指定

この機能を使用するには,次に示す環境変数を指定する必要があります。

環境変数名 環境変数の有効範囲 環境変数の機能内容
CBLINBUFSIZE=nnnnnnnnnn※1 対象ファイルに有効※2 OPEN文のモードがINPUT指定のバッファサイズ制御によるファイル入力時に,使用するバッファサイズを2,000,000,000(約2GB)までの数値で指定する。
CBLOUTBUFSIZE=nnnnnnnnnn※1 OPEN文のモードがOUTPUT/EXTEND指定のバッファサイズ制御によるファイル出力時に,使用するバッファサイズを2,000,000,000(約2GB)までの数値で指定する。
CBLD_ファイル名=NOINBUFSIZE ファイル別に有効 指定されたファイルのバッファサイズ制御による入力時に,環境変数CBLINBUFSIZEで設定された値が無効になる。無効になった場合のバッファサイズは,4,096バイトになる。
CBLD_ファイル名=NOOUTBUFSIZE 指定されたファイルのバッファサイズ制御による出力時に,環境変数CBLOUTBUFSIZEで設定された値が無効になる。無効になった場合のバッファサイズは,4,096バイトになる。

注※1
「nnnnnnnnnn」には,COBOLのファイル入出力機能で使用するバッファ長として,1〜2000000000の数字を指定します。

注※2
プロセス内の対象ファイルに有効になります。

各環境変数間の関係を次に示します。

環境変数CBLINBUFSIZE/
CBLOUTBUFSIZEの指定
環境変数CBLD_ファイル名の指定
指定なし NOINBUFSIZE NOOUTBUFSIZE
CBLINBUFSIZE ×
CBLOUTBUFSIZE ×

(凡例)
○:環境変数CBLINBUFSIZE/CBLOUTBUFSIZEのバッファサイズの任意の値が有効
×:バッファサイズの任意の値が無効(バッファサイズは4,096バイト)
−:各環境変数の間に関連性はない(バッファサイズの任意の値が有効)

(2) 指定例(Bシェル)

環境変数の指定例を次に示します。

 
CBLINBUFSIZE=32768 プロセス内の入力時にファイルバッファを32,768バイトとする
export  CBLINBUFSIZE
CBLOUTBUFSIZE=8192 プロセス内の出力時のファイルバッファを8,192バイトとする
export  CBLOUTBUFSIZE
 
CBLD_FILE01=NOINBUFSIZE ファイル名FILE01について,入力の指定を取り消す※1
export  CBLD_FILE01   出力を取り消す場合はNOOUTBUFSIZEを指定する
 

注※1
複数のオプションを指定する場合は,次に示すように各オプションをコロン(:)で区切ります。
CBLD_FILE01=NOINBUFSIZE:NOOUTBUFSIZE
export CBLD_FILE01

(3) 規則

(4) 注意事項

ファイル入出力でのバッファサイズは,使用されるファイルサイズ,ディスク装置・マシン環境,およびシステムの仕様に依存することから実際に性能検証によって適切な値を使用してください。