TRACEコマンドは、個々のプログラム、モデルおよび計算式の実行中に、これらの開始、終了および実行に関する情報を現行の出力ファイルに記録するかどうかを指定します。
プログラムとモデルについては、各コード行の開始、終了および実行をトレースし、PRGTRACEまたはMODTRACEオプションがYES
に設定されている場合と同様の出力を生成します。
計算式については、開始時に名前とディメンション値を、また終了時には戻り値を出力します。
構文
TRACE [?|{object-name|*} [OFF] [begin-arguments] [end-arguments] [ TRACELINES | NOTRACELINES]]
ここで、
begin-argumentsには次の構文が必要です。
IN [ARGS | NOARGS]
end-argumentsには次の構文が必要です。
OUT [VALUE | NOVALUE]
パラメータ
?(疑問符)は、現行のTRACEリストを表示しますが、このリストには、実行時にトレースする各プログラム、モデルおよび計算式の名前が含まれます。また、グローバル・トレースがある場合は、TRACE ALLが含まれます。リストでは、各プログラム、モデルおよび計算式、さらにTRACE ALLに対して、現行のTRACE設定(begin-argumentsおよびend-argumentsの値)が表示されます。
トレースするプログラム、モデルまたは計算式の修飾されていない名前。アタッチされているデータベースに存在しない名前でも、プログラム、モデルまたは計算式の名前を指定できます。OFFキーワードを指定しないと、この引数によってオブジェクト固有のトレースが有効化され、指定したプログラム、モデルまたは計算式が実行されると、TRACEがこれらをトレースします。プログラム、モデルまたは計算式のTRACE設定を変更するために、これらのオブジェクト固有のトレースは複数回有効化できます。OFFキーワードを指定すると、この引数によってオブジェクト固有のトレースが無効化されます。
*(アスタリスク)は、プログラムとモデルでのみ使用します。
OFFキーワードを指定しないかぎり、*(アスタリスク)によりTRACEリストにTRACE ALLが追加され、グローバル・トレースが有効になります。これは、実行するすべてのプログラムおよびモデル(express.dbの一部であるLISTNAMESなどのプログラムも含む)の実行をトレースすることを意味します。オブジェクト固有のトレースとグローバル・トレースの両方を指定した場合、指定したプログラムまたはモデルの実行時には、オブジェクト固有のトレース設定が優先されます。
OFFキーワードを指定すると、*(アスタリスク)によりTRACEリストからすべてのプログラム名、モデル名およびTRACE ALLが削除され、リストが空になります。これにより、グローバル・トレースが無効化されます。
ARGSおよびNOARGSは、プログラムと計算式でのみ使用します。これらのキーワードは、プログラムの入力時または計算式のディメンション値の入力時に、TRACEが引数の値を表示する必要があるのかどうかを示します。デフォルトはARGSです。
VALUEおよびNOVALUEは、プログラムでのみ使用します。これらのキーワードは、プログラムの最後の行を実行した後にプログラムの戻り値を表示するかどうかを示します。戻り値のないプログラムの場合、値は表示されません。デフォルトはVALUEです。
TRACELINESおよびNOTRACELINESは、プログラムとモデルでのみ使用します。これらのキーワードは、プログラムまたはモデルの行を出力するかどうかを示します。デフォルトはTRACELINESです。
使用上の注意
ネストしたプログラムおよびモデル
ネストしたプログラム(1つのプログラムが別のプログラムをコールする)を実行する場合で、さらにすべてのネストしたプログラムをトレースする場合、TRACEはネストされたレベルをトラッキングします。プログラムの1つがモデルをコールする場合は、モデルもトレースでき、TRACEはネストしたプログラムのスタック内にあるモデルもトラッキングします。
TRACE設定の変更
プログラムやモデルのTRACE設定を変更するには、新しいTRACEコマンドを実行します。設定のうち1つだけを変更した場合、他の設定は以前の設定値のまま維持されます。
モデルのトレース
モデル内の連立方程式のブロックが指定した反復回数内で解決できない場合は、エラーが発生します。このような場合にTRACEが実行するアクションは、MODERRORオプションの値で決まります。