![]() | 実行 | ランタイムスイッチの詳細 | ![]() |
実行時構成可能変数を使って、特定の実行時の動作を設定することができます。実行時構成可能変数には、次の 3 つタイプがあります。環境変数、実行時調整可能変数、およびランタイムスイッチです。
この章では、使用可能な実行時調整可能変数を列挙し、詳細を説明します。Server Express で使用される環境変数の一覧は、付録『環境変数』を参照してください。ランタイムスイッチの一覧は、『ランタイムスイッチの詳細』の章を参照してください。
ご使用のランタイムシステム、またはリンク済みの実行可能プログラムは、起動時に、実行時構成ファイルを読み取ろうとします。実行時構成ファイルには、実行時構成可能変数の値が指定されています。このファイルは、Server Express の全ユーザで共有します。
実行時構成ファイルはテキストファイルです。このファイルは、ご利用の標準のテキストエディタで編集できます。このファイルは省略可能なファイル (このファイルが存在しなくても、エラーは出力されない) で、デフォルトの名前は $COBDIR/etc/cobconfig です。環境変数、 COBCONFIG を設定して、この構成ファイルの名前を指定することができます。次に例を示します。
COBCONFIG=$HOME/myconfig export COBCONFIG
実行時構成可能変数は、1 行に 1 つ指定します。空白行は無視されます。注記行には先頭に # を指定します。ただし、構成ファイルは実行時に処理されるため、このファイルの処理時間が最小になるよう、コメントを最少限にすることをお奨めします。1 行の注記行には、最大で 80 字を指定できます。エディタによっては、ラインフィード(改行)文字やキャリッジリターン(復帰)文字が行末に入力される場合がありますが、これらの文字も含めて、この制限内に収める必要があります。
構成ファイルは、次の場合に使用できます。
実行時構成可能変数は、実行時構成ファイルの 1 行に 1 つずつ指定します。 実行時調整可能変数は次の形式で指定します。
set configurable_name=value
環境変数の場合は次の形式で指定します。
setenv configurable_name value
パラメータの内容は次の通りです。
configurable_name
|
実行時構成可能変数の名前を指定します。ここには、この章で説明している実行時調整可能変数の名前、または付録『環境変数』で説明している環境変数の名前を指定します。dd_ ファイル名マッピングに関する詳細は、『ファイル処理』を参照してください。 |
value |
実行時構成可能変数に割り当てる値を指定します。実行時調整可能変数に割り当て可能な値に関しては、この章で説明します。実行時調整可能変数の場合は、value
に指定できる有効なタイプおよび値が決まっています。無効な値が指定された場合は、Cobconfig_error_report
の値に従って、エラーが報告されます。
値が数字の場合は、数値の前にゼロを付けると、値は 8 進数 (つまり、基数 8) として扱われます。たとえば、07 (8 進数) は 7 (10 進数) となります。010 (8 進数) は、8 (10 進数) となります。また、08 (8 進数)、および 09 (8 進数) は、8 進数の無効な値です。0x で始まる数字の値を使用すると、16 進の値も設定することができます。 |
定義内の空白文字は、タブ、または複数の空白文字にすることもできます。
setenv dd_MYFILE /usr/mydir/myfile set cobconfig_error_report=TRUE
次の項では、利用可能な実行時調整可能変数について説明します。
set arguments_are_initial={TRUE|FALSE}
TRUE または FALSE を指定します。
この調整可能変数は、ACCEPT ... FROM ARGUMENT-NUMBER、および ACCEPT ... FROM ARGUMENT-VALUE 構文から返される COBOL のコマンド行の引数に影響を与えます。この構文に関する詳細は、『言語リファレンス』 を参照してください。
TRUE に設定すると、COBOL のコマンド行の引数は、オペレーティングシステムが実行単位に最初に渡す引数と同じになります。cobrun のようなトリガを使用する場合は、引数、 0 がトリガ名、引数、 1 が COBOL のメインプログラムの名前になります。
FALSE に設定すると、COBOL のコマンド行の引数にはトリガ名は含まれません。そのかわり、引数 0 が常に COBOL のメインプログラムの名前になります。
システムの実行可能プログラムを使用してアプリケーションを起動する場合は、この調整可能変数の設定に関係なく、引数 0 は常に実行可能プログラムの名前です (これは、デフォルトでは、COBOL のメインプログラムの名前でもあります)。
この調整可能変数を FALSE に設定すると、アプリケーションのパッケージ化方法に関係なく、常に同じ結果になります。アプリケーションのパッケージ化に関する詳細は、『アプリケーションのパッケージ化』の章を参照してください。
Micro Focus Object COBOL Developer Suite V4.1 for UNIX および、それ以前の製品と互換性を持たせるには、この調整可能変数を TRUE に設定してください。
FALSE
コマンド行で次のように入力します。
myapp arg1 arg2
このように指定すると、myapp
が引数 0 として返されます。
コマンド行で次のように入力します。
cobrun myapp arg1 arg2
このように指定すると、この調整可能変数が FALSE に設定されている場合は、myapp
が引数 0 として返されます。この調整可能変数が TRUE に設定されている場合は、トリガ名 (cobrun) が引数 0 として、myapp
が引数 1 として返されます。
set bll_cell_address_check={TRUE|FALSE}
TRUE または FALSE を指定します。
TRUE に設定すると、BLL セルのアドレスの先頭ビットが設定されていることがテストされます。このビットが設定されていると、共有メモリのアドレスをテストした際に、ランタイムシステムエラー 181 「無効なパラメーターを使用してエラーが発生している」が返される可能性があります。
FALSE に設定すると、テストは実行されません。BLL セルが共有メモリに割り当てられている場合は、FALSE にすることをお奨めします。
TRUE
set cobconfig_error_report={TRUE|FALSE}
TRUE または FALSE を指定します。
FALSE に設定すると、構成ファイルの処理中に検知されたエラーが報告されません。
TRUE。検知されたエラーはすべて報告され、ランタイムシステムが終了します。変数名が不明、または変数のつづりに誤りがある場合、その実行時調整可能変数の名前は報告されません。
set command_line_accept={TRUE|FALSE}
TRUE または FALSE を指定します。
TRUE に設定すると、最初の ACCEPT または READ from STDIN で、コマンド行からの入力が受け取られます。
FALSE。最初の ACCEPT または READ from STDIN で、ユーザからの入力が受け取られます。この値に設定すると、ANSI に完全準拠の動作になります。convert3 または convert5 から生成したプログラムを実行する場合は、この値を設定してください。
set command_line_linkage={TRUE|FALSE}
TRUE または FALSE を指定します。
TRUE に設定すると、プログラムを呼び出して、コマンド行をメインプログラムに渡すことができます。メインプログラムは、このコマンド行をパラメータとして連絡節から受け取ります。コマンド行をメインプログラムに渡すことに関する詳細は、『プログラマーズガイド − アプリケーション作成』 マニュアルの『Writing Programs』の章を参照してください。
TRUE
set core_on_error=integer
integer
integer には、コアファイルを作成する環境を指定します。コアファイルは Animator を使用して見ることができます。詳細は、『デバッギングハンドブック』 を参照してください。
integer には次の値を指定できます。
0 | シグナル、またはランタイムシステムエラーに対し、ランタイムシステムでコアファイルは作成されません。 これは、ランタイムシステムのデフォルトの動作です。 |
1 | システムシグナルを受信した場合は、ランタイムシステムでコアファイルが作成されます。コアファイルは、通常はホストシステム上に作成されます。シグナルには、たとえば、SIGILL、SIGSEGV (これらは通常の場合、ランタイムシステムエラー 114 を生成する) などがあります。 |
適切な Animator 情報ファイルがあれば、コアファイルをアニメートして、障害の原因を突き止めることができます。
注 : コアファイルが作成されると、ランタイムシステム自身が COBOL ファイルのバッファをクリアしたり、システムリソースを開放することはできません。これにより、データファイルが破損されることがあります。コアファイルを作成しなければ、このようにファイルが破損されることはありませ。
0
set current_day=integer
integer |
1 から 31 までの値で日付を指定します。ACCEPT identifier FROM DATE 構文、または CURRENT-DATE 固有の機能を使用すると、ここに指定した値が返されます。 |
システムクロックで指定された現在の日付が指定されます。
set current_month=integer
integer |
1 から 12 までの値で月を指定します。 ACCEPT identifier FROM DATE 構文、または CURRENT-DATE 固有の機能を使用すると、ここに指定した値が返されます。 |
システムクロックで指定された現在の月が指定されます。
set current_year=integer
integer |
年を示す値を指定します。ACCEPT identifier FROM DATE 構文、ACCEPT identifier FROM DAY 構文、または CURRENT-DATE 固有の機能を使用すると、ここに指定した値が返されます。 |
システムクロックで指定された現在の年が設定されます。
set debug_on_error={0|1}
0 または 1 を指定します。
JIT デバッグを使用する場合は、この調整可能変数を 1 に設定してください。これにより、実行プログラムが実行時エラーで終了した場合に、Animator を起動することができます。
0
JIT デバッグに関する詳細は、『デバッギングハンドブック』を参照してください。
set debugger_command="debugger"
debugger にはデバッガを起動するコマンドを指定します。ここには、『デバッギングハンドブック』マニュアルの『Animator の起動』の章に一覧表示しているコマンドのいずれかを指定してください。
この調整可能変数は、debug_on_error
調整可能変数とともに使用します。
cobanim
JIT デバッグに関する詳細は、『デバッギングハンドブック』を参照してください。
set detect_alt_ctrl={TRUE|FALSE}
TRUE または FALSE を指定します。
ほとんどの UNIX 環境では、Ctrl キー、Alt キー、または Shift キーがキーボード上にある場合に、これらを個別に押しても、その入力を検知できません。このような場合は、detect_alt_ctrl
を FALSE に設定する必要があります。オペレーティングシステム、 SCO Open Desktop のバージョン 2 以降では、これらのキーが個別に押されても検知されるため、detect_alt_ctrl
を TRUE に設定することができます。
detect_alt_ctrl
を TRUE にすると、ランタイムシステムは、Ctrl キー、Alt
キー、および Shift キーを検知します。これらのキーが検知できない場合は、COBOL ユーティリティでは、Ctrl キーには
/c 、Alt キーには /a という 2 つのキーを連続して入力する副キーを使用しますが、これらが検知できる場合は、入力されたキーをそのまま
COBOL ユーティリティで使用できます。たとえば detect_alt_ctrl
を TRUE に設定できる場合は、開発環境がより使いやすくなります。
FALSE
set dynamic_dictionary_limit=integer
integer
integer
には、実行時に仮想ヒープ用に動的に割り当てられるメモリの最大サイズを指定します。
仮想ヒープは、プログラムの処理時にコンパイラで使用されます。このサイズは オペレーティングシステムによって異なります。メモリ制限を越えた場合は、仮想ヒープに割り当てられているメモリが、Micro Focus COBOL システムで、ディスク上にページングされます。仮想ヒープに割り当てられたメモリ容量が、十分にプログラムを処理できる大きさでないと、仮想ヒープのページングで、ディスクにアクセスするオーバヘッドが生じるため、コンパイルおよび、生成時間が長くなります。
この実行時調整可能変数は、-d ランタイムスイッチと同じ働きを持ちます。両者の値が異なる場合は -d の値が使用されます。
8K で、バッファが 30 になります。
set dynamic_memory_limit=integer
integer
integer
には、実行時に動的に割り当てられるメモリの最大サイズを指定します。この値はオペレーティングシステムに依存します。
使用されるメモリが、ここに指定した値に達するまでは、取り消されたプログラムで使用されたメモリは開放されません。そのため、プログラムを再利用することができ、CALL/CANCEL
文のパフォーマンスが大幅に向上します。このモードの作業を「論理キャンセル」と呼びます。
ユーザプログラムに関しては、論理キャンセルと実際のキャンセルの動作は同じです。動的に割り当てられるメモリ要件が dynamic_memory_limit に設定したサイズよりも大きい場合は、CANCEL 文で開放されるすべてのメモリが解放されます。この制限をゼロに設定すると、論理キャンセルは実行できません。
この実行時調整可能変数は、-l ランタイムスイッチと同じ意味を持ちます。両者の値が異なる場合は -l の値が使用されます。
論理キャンセルが使用されます。
set faultfind_level=n
n には正の数を指定します。この調整可能変数を指定すると、FaultFinder が有効になります。そのため、アプリケーションが異常終了した場合に、最後の n 個のイベントが FaultFinder レポートにダンプされます。n の値を大きくするほど、使用されるメモリも大きくなります。
FaultFinder に関する詳細は、『デバッギングハンドブック』の『FaultFinder』 の章を参照してください。
0 (無効)
faultfind_outfile
faultfind_recsize
set faultfind_outfile="[>>]filename"
filename には、FaultFinder レポートの書き込み先ファイルを指定します。>>
を指定すると、filename
が既に存在する場合は、出力が filename に追加され、filename が存在しない場合は、filename
という名前のファイルが新規に作成されます。
filename に文字列 %p が含まれる場合は、この文字列が、FaultFinder を起動したプログラムのプロセス ID に置換されます。
FaultFinder に関する詳細は、『デバッギングハンドブック』の『FaultFinder』 の章を参照してください。
現在の作業ディレクトリの fltfnd_out.pid が指定されます。pid は FaultFinder の出力をトリガするプロセスのプロセス ID です。
faultfind_level
faultfind_recsize
set faultfind_recsize=record_size
record_size には数字 (バイト) の値を指定し、操作のトレースバックログ作成用に読み取るデータ、または書き込むデータを格納するために使用する内部キャッシュのサイズを指定します。すべての読み取りデータ、または書き込みデータが格納され、報告されます。この構成可能変数を使用してパフォーマンスを改善することができます。デフォルト値は 64 で、最大値は 1024 です。
record_size の値は最大 1024 バイトにすることができます。
FaultFinder に関する詳細は、『デバッギングハンドブック』の『FaultFinder』 の章を参照してください。
64 バイト
faultfind_level
faultfind_outfile
set filename_quote_char="character"
または
set filename_quote_char='character'
character には引用符文字を指定します。ここに指定した文字は、CBL_OPEN_FILE のような呼び出しでランタイムシステムに渡されるファイル名を解釈する際に使用されます。引用符で囲まれたファイル名内で、引用符文字を 2 つ連続して使用すると、ファイル名が取り出される際に、これらが単一引用符として解釈されます。ファイル名内に空白文字が含まれている場合は、ファイル名を引用符で囲む必要があります。
" (二重引用符文字) が指定されます。
set filename_escape_char="character"
または
set filename_escape_char='character'
character にはエスケープ文字を指定します。ここに指定した文字は、CBL_OPEN_FILE のような呼び出しでランタイムシステムに渡されるファイル名を解釈する際に使用されます。 エスケープ文字はファイル名の一部として扱われることはありませんが、エスケープ文字 (空白文字など) のすぐ後ろの文字がファイル名の一部として扱われます。ファイル名内に空白文字が含まれている場合は、このファイル名を引用符で囲む必要があります。
\0 (エスケープ文字として使用される文字はありません)。
set intra_process_record_locking={TRUE|FALSE}
TRUE または FALSE を指定します。
TRUE に設定すると、ランタイムシステムで 1 つのファイルを共有したり、プロセス内で、1 つのファイルに対してレコードロックを設定することができます。レコードロックは、1 つのファイルが異なるプログラムで複数回開かれた場合に設定されます。また、1 つのファイルが異なるスレッドで開かれる場合にも設定されます。ファイルを開いた際に設定されたレコードロックは、その共有ファイルを閉じた場合のみ解除されます。
この調整可能変数を FALSE に設定すると、1 つのファイルの共有や、プロセス内の 1 つのファイルに対するレコードロックの設定は、このシステムで定義されず、オペレーティングシステムで定義されます。
TRUE
set lock_mode={0|1|2|3}
0、1、2、または 3 を指定します。
実行するロックを次から選択します。
ロックモード |
説明 |
---|---|
0 | Micro Focus COBOL V3.1 以前のバージョンで提供されたロック機構を使用する。 |
1 | DOS および OS/2 のロック機構と互換性を持たせる。 |
2 | 言語間ロックを実行する。この方法では、レコードロックで物理レコードがロックされます。 |
3 | C-ISAM バージョン 5 以降と互換性を持たせる。 |
2
注 : この調整可能変数は、ファイルハンドラ構成オプション FILEMAXSIZE が 4 に設定されている場合のみ適用できます。FILEMAXSIZE オプションに関する詳細は、『ファイル操作』マニュアルの『ファイルハンドラの構成』の章を参照してください。
set long_filenames={TRUE|FALSE}
TRUE または FALSE を指定します。
14 文字以上のファイル名を使用できるようにします。ロングファイル名をサポートしていない装置上に作成したファイルに、ロングファイル名をサポートしている装置からアクセスする場合は、long_filenames
を FALSE に設定する必要があります。
TRUE
set pc_mono_palette=integer
integerには、モノクロ属性パレットのスタイルを選択して指定します。このパレットは、名前呼び出しルーチン CBL_SCR_SET_PC_ATTRIBUTES が作成され、カラー情報のない terminfo が使用されている場合に、ランタイムシステムで使用されます。
integer には次の値が指定できます。
0 | CGA エミュレーションパレットを選択します。これはデフォルトの値で、この設定をお奨めします。 |
1 | 下位互換のあるパレットを選択します。このパレットは、V4.0 以前の COBOL for UNIX 製品と同じ動作をします。このパレットは正式なものではない (実際の PC モノクロパレットには準拠していない) ため使用しないでください。このパレットは、このパレットに反応する特定のプログラム、またはファイル用に用意されています (たとえば、この非準拠のパレットを使って実行中に、Dialog System で保存された文字スクリーンセットなど)。 このようなプログラムやファイルは、できるだけ正しいパレットが使用されるように変換してください。 |
0
set multi_close_limit=integer
integer には、 0 から 1500 までの値で、論理クローズの数を指定します。指定した数の論理クローズが実行されると、ファイルは物理的に閉じられます。
ファイルが開かれるたびに、ランタイムシステムがオペレーティングシステムを呼び出してファイルを開きます (物理的オープン)。同じプロセスで、(対応するクローズは実行されないで) 複数回開かれているファイルを閉じる場合は、ランタイムシステムは、すべてのロックが残るよう、ファイルを閉じます (論理クローズ) が、オペレーティングシステムを呼び出して閉じるわけではありません。ランタイムシステムは、各オープンに対し、対応するクローズが実行された場合にのみ、オペレーティングシステムを呼び出してファイルを物理的に閉じます。これがデフォルトの動作です。
0 以外の値を設定すると、設定された値を超える論理クローズが実行された場合に、ランタイムシステムはオペレーティングシステムを使って、同じプロセス内で複数回開かれているファイルを物理的に閉じます。ランタイムシステムは、論理クローズが integer に指定された数だけ実行されるたびに、物理クローズを実行します。その後で、そのファイルに対して残っているすべてのロックを再度適用します。
オペレーティングシステムが物理クローズを実行する方法から明らかなように、ファイルに対するすべてのオープンに設定されているロックは、ランタイムシステムが再度これらのロックを回復するまで解除されます。そのため、この調整可能変数を使用する場合は注意が必要です。複数回再開かれる前にすべてが閉じられるよう、可能な場合は複数のオープンを入れ子にすることをお奨めします。他のプログラムやスレッド、またはその両方でファイルが開閉されるため、かなり長い時間ファイルを開いたままにする必要がある場合は、この調整可能変数を使用する必要があります。
set program_search_order=integer
integer には使用するプログラムの検索順を選択します。ここには、次の表に示すように、1 から 4 までのいずれかを指定できます。
検索順 |
説明 |
---|---|
1 | 次の検索順序で検索されます。
|
2 | 次の検索順序で検索されます。
|
3 | 次の検索順序で検索されます。
|
4 | 次の検索順序で検索されます。
|
以前の Micro Focus COBOL の UNIX 版と互換性を持たせる場合は、program_search_order
を 2 に設定してください。以前の DOS 版と互換性を持たせる場合は、3 に設定してください。
注 : パスが特定されてプログラムが呼び出された場合は、program_search_order の値は無効になり、検索は次のように実行されます。
1
set shared_memory_segment_size=integer
integer
integer
には、ランタイムシステムによって割り当てられる、共有メモリブロックの初期サイズをバイト単位で指定します。integer
に指定できる最小値は 8192 (8K) です。
65536 (64 K)
set signal_interface={TRUE|FALSE}
TRUE または FALSE を指定します。
TRUE に設定すると、ランタイムシステムで、シグナル処理インターフェイス、 signal()
が使用されます。このインターフェイスは、Micro
Focus COBOL バージョン 3.1 以前で使用されているのと同じものです。FALSE に設定すると、ランタイムシステムでは、より信頼性の高いシグナル処理インターフェイス、
sigaction()
が使用されます。
非 COBOL プログラムでシグナルハンドラを使用する場合以外は、デフォルト値を変更する必要はありません。COBOL 環境でシグナル処理を使用する場合の詳細は、『プログラマーズガイド − アプリケーション作成』の『複数の言語による開発』の章を参照してください。signal()
、および sigaction()
に関する詳細は、オペレーティングシステムのマニュアルを参照してください。
FALSE
set signal_regime(sig)=integer
または
set signal_regime=1
integer
ランタイムシステムがシグナル、 sig を受け取るアクションを選択します。sig に指定する値は、1 から、ご利用のオペレーティングシステムのシグナル番号の最大値までのいずれかの値にする必要があります。シグナル番号に関する詳細は、ご利用のオペレーティングシステムのマニュアルを参照してください。
この調整可能変数を使用する必要があるのは、シグナルを使用するサードパーティのソフトウェアで Server Express を使用する場合のみです。
作成したアプリケーションでシグナル処理を使用する場合は、この調整可能変数を使って、cobpostsighandler()
インターフェイスを使用する必要があります。この場合、オペレーティングシステムのシグナル処理インターフェイスは使用しないでください。『プログラマーズガイド − アプリケーション作成』の『複数の言語による開発』の章も参照してください。
integer には次の値が指定できます。
値 |
アクション |
---|---|
0 | 必要な場合に、シグナル、 sig がランタイムシステムで使用されます。
デフォルトでは、ランタイムシステムは、オペレーティングシステムのデフォルトのアクションを終了させるようなシグナルすべてに対し、シグナルハンドラを設定します。ランタイムシステムは、終了する前にこれらのシグナルを受け取って対処します (たとえば、ファイルが破損されないように、開いているファイルを閉じるなど)。 |
1 | シグナル sig は、まだハンドラにポストされていない場合のみ、ランタイムシステムで使用されます。
これは、Server Express の前にサードパーティのソフトウェアが起動された場合に有効で、サードパーティのソフトウェアによって、シグナル、 sig に対するハンドラが設定されます。この調整可能変数がこのシグナルに対して設定されていない場合は、サードパーティのソフトウエアのハンドラが、ランタイムシステムのハンドラで上書きされます。この場合は、予期しない動作が発生し、ランタイムシステムエラー 115 (「予測しない信号を検出した」) などが生成されます。 ハンドラがポストされると、そのシグナルに対するハンドラは、ランタイムシステムでポストされません。そのため、このシグナルに関するランタイムシステムの機能も動作しません。 |
2 | シグナル sig はランタイムシステムで使用されません。
これは、Server Express の後にサードパーティのソフトウェアが起動された場合にのみ有効で、サードパーティのソフトウェアによって、シグナル、 sig に対するハンドラが設定されます。 この値を設定すると、オペレーティングシステムのデフォルトのアクションを終了させるようなシグナルがかなり妨害されます。つまり、呼び出されたランタイムシステムと、このシグナルのハンドラを設定しているサードパーティのソフトウェア間でこのようなシグナルが受信されると、オペレーティングシステムのデフォルトのアクションが実行され、プロセスは、ランタイムシステムで対処できないまま、終了します。これにより、ファイルが破損するなどの障害が発生することがあります。 このシグナルに関するランタイムシステムの機能はどれも動作しません。 |
すべてのシグナルに対して 0 が設定されています。
別の構文 (set signal_regime=1) を使用した場合は、すべてのシグナルに対するシグナル方式は 1 に設定されます。この場合、この構文で設定できる値は 1 のみであることに注意してください。
Copyright(C) 2001 Micro Focus. All rights reserved.
本書ならびに、使用されている固有の商標と商品名
は国際法で保護されています。
![]() |
実行 | ランタイムスイッチの詳細 | ![]() |