前ページへCob のエラーメッセージの説明 実行時の構成次ページへ

第 13 章 実行

この章では、この COBOL システムでプログラムを準備して実行する方法を説明します。また、実行時にプログラムの動作を制御するスイッチの指定方法や、ユーザプログラムが読み取るパラメータをコマンド行で指定する方法についても説明します。

Profiler を使用して、COBOL プログラムの実行時のパフォーマンスを分析することができます。詳細は、『Utilities Handbook』『Profiler』 の章を参照してください。

13.1 はじめに

次の 2 つの方法で実行可能プログラムを作成することができます。

実行ファイルのタイプに関する説明は、『アプリケーションのパッケージ化』の章を参照してください。

プログラムを実行する際に、次のことを指定できます。


注 : 64 ビット版の Server Express を使用している場合は、ツール名が異なる可能性があります。詳細は、『32 ビットモードおよび 64 ビットモードでの作業』の章を参照してください。


13.2 プログラムの実行

リンク済みのシステムの実行可能ファイルを呼び出す構文は、動的にロード可能なモジュールを呼び出す構文とは少し異なります。次に、それぞれの タイプのプログラムを コマンド行で実行する方法を説明します。

プログラムを実行するには、あらかじめ、次の環境変数を設定しておく必要があります。

詳細は、付録『環境変数』を参照してください。

13.2.1 リンク済みのシステムの実行可能プログラム

リンク済みのシステムの実行可能プログラムを実行するには、システムプロンプトで、次のようなコマンド行を入力します。

module-name [program-params]

パラメータの内容は次の通りです。

module-name cob コマンドが出力するシステムの実行可能ファイルの名前を指定します。このタイプのファイルの作成に関する詳細は、『COBOL システムインターフェイス (Cob)』の章を参照してください。module-name に明示的にパスを指定しない場合は、$PATH に指定されているディレクトリが検索されます。
program-params プログラムで必要な 1 つ以上のパラメータを指定します。各パラメータの文字列は、次のパラメータとの間に 1 つ以上の空白文字を入れて指定します。プログラムは、これらのパラメータを、様々な方法で読み取ることができます。詳細は、『プログラマーズガイド − アプリケーション作成』『パフォーマンスの最適化』の章を参照してください。

13.2.2 動的にロード可能なプログラム

動的にロード可能なプログラム (つまり、呼び出し可能な共有オブジェクト、.gnt ファイル、または .int ファイル) を実行するには、システムプロンプトで、 次のコマンド行を入力します。

cobrun [switch-param] program-name [program-param]

パラメータの内容は次の通りです。

switch-param 実行時にプログラム内のイベントを制御する、1 つ以上のプログラム可能なスイッチ、およびランタイムスイッチを指定します (この章の『スイッチパラメータ』の項を参照してください)。
program-name 動的にロード可能なプログラムの名前を指定します。ここに指定できるのは、.int ファイル、.gnt ファイル、または呼び出し可能な共有オブジェクトです。これらのタイプのファイルの作成に関する詳細は、『COBOL システムインターフェイス (Cob)』 の章を参照してください。同じ基本名の .int ファイル、.gnt ファイル、または呼び出し可能な共有オブジェクトが存在する場合に、cobrun コマンドに明示的にファイル名拡張子を指定しないと、デフォルトでは、呼び出し可能な共有オブジェクトが、.gnt ファイルよりも優先的に実行され、.gnt ファイルは、.int ファイルよりも優先的に実行されます。

program-name に明示的にパスを指定しない場合は、$COBPATH に指定されているディレクトリが検索されます。また、呼び出し可能な共有オブジェクトの場合は、$LD_LIBRARY_PATH、$LIBPATH、または $SHLIB_PATH に指定されているディレクトリが検索されます。『実行時の構成』の章のprogram_search_order 実行時調整可能変数の説明を参照してください。

program-param

プログラムで必要な 1 つ以上のパラメータを指定します。 各パラメータの文字列は、次のパラメータとの間に 1 つ以上の空白文字を入れて指定します。 パラメータに等号が含まれている場合は、等号がかっこにマップされます。これは、かっこは UNIX では特殊な意味を持ちますが、等号には特別な意味がないためです。プログラムは、これらのパラメータを様々な方法で読み取ることができます。 詳細は、『プログラマーズガイド − アプリケーション作成』『パフォーマンスの最適化』の章を参照してください。

13.2.2.1 スイッチパラメータ

スイッチは、ランタイムシステムに渡すパラメータで、実行時のユーザプログラムの動作を制御するものです。これらのスイッチは、2 つのカテゴリに分けられます。プログラム可能なスイッチ、および実行時スイッチです。利用できるスイッチの一覧と説明は、『ランタイムスイッチの詳細』の章に示しています。

13.2.2.1.1 プログラム可能なスイッチ

プログラム可能なスイッチは、0 から 8 までの数字です。これらのスイッチは、プログラムの Special-Names 段落に定義した COBOL のスイッチに対応します。これらのスイッチを有効にするかどうかは、プログラムの実行時に設定できます。アプリケーションが一旦停止すると、これらのスイッチのうち、COBOL の SET 呼び名 TO ON または OFF 文を使って変更されたスイッチの設定は無効になります。COBOL のスイッチに関する SET 文の使用方法の詳細は、『言語リファレンス』を参照してください。

13.2.2.1.2 ランタイムスイッチ

ランタイムスイッチは、ランタイムシステムによって設定されます。ランタイムスイッチは、大文字または小文字のアルファベット 1 字です。これらのスイッチは、特定の COBOL の機能の実行時の動作のオプション部分に作用します。

13.2.2.2 スイッチの設定

プログラムを実行する前に指定するスイッチは、COBSW 環境変数を使用して設定できます。また、動的にロード可能なプログラムを実行している場合は、cobrun のコマンド行で設定することができますが、COBSW の使用をお奨めします。

プログラム可能なスイッチ、またはランタイムスイッチを有効にするには、スイッチの前にプラス記号 (+) を指定します。これらのスイッチを無効にする場合は、スイッチの前にマイナス記号 (-) を指定します。

COBSW 環境変数、または cobrun のコマンド行のどちらかで、スイッチを明示的に設定しない場合のスイッチのデフォルト値は『使用可能なスイッチ』の項に示す値です。

COBSW にスイッチを設定する場合は次の形式で設定します。


コマンド行でスイッチを設定する場合は次の形式で設定します。


パラメータの内容は次の通りです。

プログラム可能なスイッチ、またはランタイムスイッチです。プラス記号 (+) はスイッチ s を有効にする場合に使用し、マイナス記号 (-) は無効にする場合に使用します。
プログラム可能なスイッチの場合は、0 から 8 までの数字のいずかを指定します。ランタイムスイッチ の場合は大文字、または小文字のアルファベットを指定します。

注 :

スイッチを設定する場合は、次のことに注意してください。


COBSW を次のように設定します。

COBSW=+1+4

この場合、プログラム可能なスイッチは、次のように設定されます。

0 無効
1 有効
2 無効
3 無効
4 有効
5 無効
6 無効
7 無効
8 無効

次のコマンドについて説明します。

cobrun -2+5-7+7 ./myprog

このように指定すると、プログラム、 myprog.intmyprog.gnt、または myprog.so がカレントディレクトリから (プログラムの検索順に従って) ロードされます。このとき、プログラム可能なスイッチ 5、および 7 が有効に、スイッチ 2 が無効になります。スイッチ 7 (+7 のこと) には、最新の設定、有効が使用されます。指定されていないスイッチ 0、1、3、4、6、および 8 は、デフォルトでは無効です。

13.2.3 使用可能なスイッチ

スイッチパラメータ、 s には、次に一覧表示するプログラム可能なスイッチ、またはランタイムスイッチのいずれかを指定することができます。機能 欄には、スイッチが有効の場合の効果を説明し、『デフォルトの設定』 欄には、そのスイッチを明示的に設定しなかった場合の設定を示します。これらのスイッチのそれぞれの機能に関する全詳細は、『ランタイムスイッチの詳細』の章を参照してください。

表 13-1: 利用可能なスイッチ

スイッチ 概要 機能 デフォルトの
設定
0 から 8 まで プログラム可能スイッチ プログラムの Special-Names 段落に定義した COBOL のスイッチを有効、または無効にする。 無効
A Animator Animator デバッガを起動する。 無効
B, B1 ロックされたレコードをスキップする。 共有ファイルに順番にアクセスする際に、ロックされているレコードをスキップできる。 無効
D ANSI COBOL のデバッグ ANSI COBOL デバッグモジュールを起動する。 無効
d 動的ページングバッファ RTS 動的ページングバッファに使用するメモリーの量を、バイト単位で指定できる。 240 KB
E エラースイッチ cob で出力される、S レベルのコンパイラエラーがある中間コードを実行する。 無効
F 数字フィールドのチェック 実行時に様々な数字データのチェックを行う。 有効
i キーボード割り込みスイッチ キーボードから割り込みできるようにする。(Job Control をサポートするシステムへの一時停止キーも含む) 有効
L2 レコード終止符 レコード終止符 (x"0D0A" または x"0A") として扱う文字を決定する。 無効
l メモリ (小文字の L) 使用可能なメモリサイズを設定する。
RTS で使用できる最大サイズ (バイト)
N ヌルスイッチ 行順ファイルにヌルを挿入できるようにする。 有効
O 0 による割り算 プログラムのコンパイル時に、CHECKDIV 指令に "OSVS"、"VSC2"、または "COBOL370" パラメータを指定した場合に、プログラムがゼロによる割り算を実行しようとした場合、ランタイムシステムエラーを生成する。 有効
T タブ 行順ファイルの出力時に、タブを挿入できるようにする。 無効
Z DBCS 空白文字の変換 行順ファイル、またはコンソールの入力を読み取る際に、DBCS の空白文字を ASCII の空白文字に変換する。 無効

13.2.4 TMPDIR 環境変数

TMPDIR 環境変数を使用すると、一時ファイルの格納先として、異なるパスを指定できます。ヒープの作成、または分類を行う際に、ランタイムシステムでディスクにデータをページングする必要がある場合は、この設定が必要になることがあります。TMPDIR 環境変数の設定に関する詳細は、付録『環境変数』を参照してください。

13.2.5 コマンド行のパラメータへのアクセス

プログラムのパラメータには、様々な方法でアクセスすることができます。たとえば、ACCEPT 文の次のいずれかの形式を使用することができます。

accept data-name from command-line 

または

accept data-name from mnemonic-name

パラメータの内容は次の通りです。

data-name コマンド行のパラメータを受け取るデータ項目を指定します。
mnemonic-name Special-Names 段落に次のように定義されているものを指定します。
command-line is mnemonic-name

コマンド行のパラメータにアクセスする方法の全詳細は、『プログラマーズガイド − アプリケーション作成』『パフォーマンスの最適化』の章で説明しています。

プログラム、 myprog をコマンド行で実行する場合は次のように指定します。

COBSW=+1+7 
export COBSW 
myprog in-file.dat clear

このように指定した場合の次の文の効果を示します。

accept cmd-line from command-line

上記の文により、次の内容がデータ項目、cmd-line に格納されます。

in-file.dat clear

13.2.6 ランタイムシステムのエラーメッセージ

ランタイムシステムのエラーメッセージは、構文的には正しくても、プログラムを実際に実行するとエラーになるようなプログラムに返されます。たとえば、誤ったモードでファイルにアクセスしようとした場合や、破損したファイルを使用した場合に、このようなエラーを受け取ります。形式に関する説明、および、発生する可能性のあるすべてのランタイムシステムエラーに関しては、『エラーメッセージ』 マニュアルを参照してください。


注 : プログラムを実行しようとしても、正しく実行できない場合は、ネイティブコードの生成ファイル、呼び出し可能な共有オブジェクト、およびシステムの実行可能ファイルのプログラムカウンタ (pc) の値が定義されていることを確認してください。



Copyright(C) 2001 Micro Focus. All rights reserved.
本書ならびに、使用されている固有の商標と商品名 は国際法で保護されています。

前ページへCob のエラーメッセージの説明 実行時の構成次ページへ