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

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

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

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

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

OPENモードINPUTOUTPUTEXTENDI-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対象ファイルに有効※2OPEN文のモードがINPUT指定のバッファサイズ制御によるファイル入力時に,使用するバッファサイズを2,000,000,000(約2GB)までの数値で指定する。
CBLOUTBUFSIZE=nnnnnnnnnn※1OPEN文のモードが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_ファイル名の指定
指定なしNOINBUFSIZENOOUTBUFSIZE
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) 注意事項