2.6.8 ジョブ実行結果とログの出力情報を定義する
ジョブの実行結果はスプールディレクトリに出力され,出力内容の一部はジョブ実行ログとして参照できます。また,トラブル発生時にログを採取し,トラブルの原因を調査できます。これらのログの出力先や出力内容を環境ファイルで定義します。
JP1/Advanced Shellを運用しているときに出力されるログ情報と格納先について,次の表に示します。
ログ情報 |
出力される情報 |
格納先 |
---|---|---|
ジョブ実行ログ |
バッチジョブのログ |
スプールルートディレクトリの配下 |
システム実行ログ |
JP1/Advanced Shellの統括的な実行ログ |
環境ファイルのLOG_DIRパラメーター※1で指定したディレクトリ |
トレースログ |
JP1/Advanced Shellの内部トレースログ |
環境ファイルのTRACE_DIRパラメーター※1で指定したディレクトリ |
【UNIX限定】 起動ログ※2 |
ユーザー応答機能管理デーモンの起動・終了ログ |
/opt/jp1as/systemの配下 |
スプールの出力情報と,それぞれのログの出力情報の定義方法を次に説明します。
(1) スプールの出力情報を定義する
スプールに関するパラメーターについて,定義する出力情報ごとに説明します。
(a) スプールジョブ作成抑止機能の使用有無を決定する
スプールジョブ作成抑止機能を使用すると,スプールジョブが作成されなくなるため,スプールディレクトリのディスク容量の単調増加を防げます。また,スプールディレクトリ下の不要なディレクトリやファイルを削除する必要がなくなります。
スプールジョブ作成抑止機能の使用はSPOOLJOB_CREATEパラメーターで設定します。詳細については,「SPOOLJOB_CREATEパラメーター」を参照してください。
スプールジョブ作成抑止機能を使用している間は,常に次の設定で動作します。
-
#-adsh_conf EVENT_COLLECT NO
稼働実績情報取得機能を無効とする
-
#-adsh_conf OUTPUT_MODE_CHILD MINIMUM
子孫ジョブを最小出力モードで実行する
-
#-adsh_conf OUTPUT_MODE_ROOT MINIMUM
ルートジョブを最小出力モードで実行する
-
#-adsh_conf SPOOLJOB_CHILDJOB DELETE
子孫ジョブの終了時に子孫ジョブのスプールジョブを削除する
-
adshexec -m MINIMUM
-mオプションの指定に関係なく,指定したジョブを最小出力モードで実行する
-
adshscripttool -exec -m MINIMUM
-mオプションの指定に関係なく,指定した子孫ジョブを最小出力モードで実行する
なお,スプールジョブ作成抑止機能を使用すると,スプールジョブディレクトリを使う次の機能は使用できません。
-
#-adsh_spoolfileコマンド
使用するとKNAX6385-Eメッセージを出力してスクリプトは終了します。
-
adshfileコマンド
使用するとKNAX1880-Eメッセージを出力してコマンドは終了します。
-
ジョブ実行ログの採取
ジョブ実行ログは採取しません。
-
稼働実績採取機能
稼働実績は採取しません。
スプールジョブ作成抑止機能を使用した場合でも,スプールディレクトリは必要です。
また,スプールジョブ作成抑止機能を使用した場合には,次の環境設定パラメーターの指定は無視します。
-
EVENT_COLLECT
-
JOBEXECLOG_PRINT
-
JOBLOG_SUPPRESS_MSG
-
OUTPUT_MODE_CHILD
-
OUTPUT_MODE_ROOT
-
OUTPUT_STDOUT
-
PERMISSION_SPOOLJOB_DIR
-
PERMISSION_SPOOLJOB_FILE
-
SPOOLJOB_CHILDJOB
CUIデバッグ時は次の名称のDBGファイルを生成します。このファイルはデバッグの終了時に自動的に削除されます。このファイルの削除に失敗すると,標準エラー出力とシステム実行ログにエラーメッセージが出力されます。
一時ファイルディレクトリ/ADSH_DBG_プロセスID_ジョブ識別子
-
一時ファイルディレクトリ
TEMP_FILE_DIRパラメーターで定義する一時ファイルディレクトリ
-
プロセスID
5桁以上のプロセスID
-
ジョブ識別子
6桁のジョブ識別子
(b) スプールルートディレクトリのパス名を定義する
スプールルートディレクトリのパス名を定義するパラメーターを次に示します。
-
SPOOL_DIRパラメーター:スプールルートディレクトリのパス名を定義します。
なお,ユーザー応答機能を使用する場合は,SPOOL_DIRパラメーターはシステム環境ファイルだけに定義してください。
(c) スプールジョブディレクトリまたはファイルのパーミッションを変更する【UNIX限定】
ジョブが終了すると,実行結果はジョブごとに作成されるスプールジョブディレクトリへ出力されます。このときディレクトリまたはその下のファイルに設定されるパーミッションは,次のパラメーターで変更できます。
-
PERMISSION_SPOOLJOB_DIRパラメーター
スプールジョブディレクトリのパーミッションを変更したい場合に指定します。
デフォルトは700です。
-
PERMISSION_SPOOLJOB_FILEパラメーター
スプールジョブディレクトリ下のファイルのパーミッションを変更したい場合に指定します。
デフォルトは600(.DBGファイルは666)です。
(d) スプールジョブの標準出力と標準エラー出力の出力内容を定義する
ジョブを実行すると,ジョブの出力結果のほかに,JP1/Advanced Shellの情報メッセージ,警告メッセージ,およびジョブ実行ログが出力されます。また,標準出力と標準エラー出力はスプールジョブディレクトリ下のファイルへ出力されます。
ジョブの実行結果だけをほかのプログラムで利用するなどの理由で,標準出力と標準エラー出力のスプールジョブディレクトリ下のファイルへの出力を抑止したい場合には,次のパラメーターまたはコマンドのオプションで簡潔出力モードまたは最小出力モードを指定します。
-
OUTPUT_MODE_ROOTパラメーター
ルートジョブに対して,拡張出力モード,簡潔出力モードまたは最小出力モードを指定します。
-
OUTPUT_MODE_CHILDパラメーター
子孫ジョブに対して,拡張出力モード,簡潔出力モードまたは最小出力モードを指定します。
-
adshexecコマンドの-mオプション
ジョブに対して,拡張出力モード,簡潔出力モードまたは最小出力モードを指定します。
-
adshscripttoolコマンドの-mオプション
子孫ジョブに対して,簡潔出力モードまたは最小出力モードを指定します。
これらのパラメーターとオプションを指定しなかった場合は拡張出力モードとなり,標準出力と標準エラー出力はスプールジョブディレクトリ下のファイルへ出力されます。
なお,簡潔出力モードと最小出力モードでは,JP1/Advanced Shellの情報メッセージと警告メッセージは標準出力,標準エラー出力へ出力しません。また,ジョブ終了時にジョブ実行ログを標準エラー出力へ出力しません。さらに,最小出力モードでは,出力抑止したメッセージはスプールジョブディレクトリ下のジョブ実行ログにも出力しません。
簡潔出力モード,拡張出力モードおよび最小出力モードの出力内容の差異については,「3.4.4 ジョブ実行ログへの情報メッセージと警告メッセージの出力を抑止する」を参照してください。
(2) ジョブ実行ログの出力情報を定義する
ジョブ実行ログに関して環境設定時に設定する内容について説明します。ジョブ実行ログの出力内容については「3.5 ジョブ実行ログ」を参照してください。
(a) 標準エラー出力に出力するジョブ実行ログの種類を定義する
ジョブが終了すると,ジョブ実行ログとして次に示す内容が標準エラー出力へ出力されます。出力されたジョブ実行ログは,adshexecコマンドの実行時の端末画面や,JP1/AJS - Viewの[実行結果詳細]ダイアログボックスなどに表示されます。
-
JOBLOGファイル(コマンドの実行結果やファイルの割り当て結果など,ジョブの動作状況を示すメッセージ)
-
ジョブ定義スクリプト
-
ジョブ実行中の標準エラー出力の内容
このうち,ジョブ実行中の標準エラー出力の内容だけを標準エラー出力へ出力させるには,次のパラメーターを指定します。これによって,ジョブ実行ログの出力内容を限定できます。
-
JOBEXECLOG_PRINTパラメーター
なお,JP1/Advanced Shell - Developerで実行,またはジョブコントローラをデバッガモードで起動した場合ではこのパラメーターの指定に関係なく,実行に合わせてJOBLOG,標準出力,および標準エラー出力の情報をコンソールに出力します。ジョブの終了時にはジョブ実行ログの内容を標準エラー出力へ出力しません。
ジョブを簡潔出力モードまたは最小出力モードで実行した場合は,JOBEXECLOG_PRINTパラメーターの指定に関係なく,ジョブ終了時にジョブ実行ログを標準エラー出力に出力しません。
(b) 子孫ジョブとルートジョブのジョブ実行ログをマージする
次のパラメーターでは,子孫ジョブの終了時に子孫ジョブのスプールジョブを削除するか,ルートジョブのスプールジョブにマージするかを選択できます。
-
SPOOLJOB_CHILDJOBパラメーター
ルートジョブのスプールジョブへマージした場合,子孫ジョブは終了順に出力されます。また,ルートジョブと子孫ジョブが判別できる形式で出力されます。
(3) システム実行ログの出力情報を定義する
システム実行ログとは,バッチジョブの実行履歴を統括的に参照するためのシステム管理者向けのログ情報です。
このログ情報は,環境ファイルのLOG_DIRパラメーターで指定したディレクトリ下のAdshLog.logに出力されます。パラメーターに設定した条件(サイズなど)に従って,ファイル名のローテーション(AdshLog_1.log,AdshLog_2.log,…AdshLog_N.log)が実施されます。システム実行ログのファイルはローテーション時に新しく作成されるため,ファイルの所有者はローテーション時のユーザーになります。
(a) システム実行ログの出力の流れ
システム実行ログには,各ジョブコントローラプロセスで実行しているバッチジョブの情報が出力されます。環境ファイルにシステム実行ログの出力先,サイズおよび面数を指定できます。システム実行ログの出力の流れを次に示します。
システム実行ログは次のように作成されます。
-
システム実行ログに出力するメッセージを集め,CSV形式で出力します。
出力するメッセージについては,「11.2 メッセージの出力先」を参照してください。
-
ローテーションを行い,バックアップが作成されます。
-
環境ファイルのLOG_FILE_SIZEパラメーターに指定されたファイルサイズを超える直前に,システム実行ログのファイル名を変更してバックアップを作成し,新たにシステム実行ログを作成して出力を継続します。
-
バックアップのファイル名は,AdshLog_N.log(Nは整数)となります。Nには新しいバックアップから昇順に1から番号を割り当てます。
-
環境ファイルのLOG_FILE_CNTパラメーターに指定された面数のバックアップを作成し,面数を超えた場合は古いバックアップを削除します。
-
(b) システム実行ログを出力するために必要なパラメーター
システム実行ログを出力するために必要なパラメーターを次に示します。
-
LOG_DIRパラメーター
システム実行ログを出力するディレクトリのパス名を定義します。
-
LOG_FILE_CNTパラメーター
システム実行ログをバックアップする面数を定義します。
-
LOG_FILE_SIZEパラメーター
システム実行ログを出力するファイルサイズを定義します。
複数のユーザーが同じファイルにシステム実行ログを出力している場合には,LOG_FILE_CNTとLOG_FILE_SIZEは,最後にシステム実行ログの出力を開始したユーザーの設定値が有効になります。このため,LOG_FILE_CNTとLOG_FILE_SIZEは同じ値で運用することを推奨します。
(c) システム実行ログの出力内容
システム実行ログに出力されるメッセージの例を次に示します。
seqnum=1, date=2013-07-01T15:52:30.012+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX0004-I, msg="Jobid=000018, JP1NBQSQueueName=, JP1JobID=" seqnum=2, date=2013-07-01T15:52:30.044+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX0091-I, msg="JOB1 Job started." seqnum=3, date=2013-07-01T15:52:30.044+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX7901-I, msg="adshexec waits for all asynchronous processes at the end of the job." seqnum=4, date=2013-07-01T15:52:30.044+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX7902-I, msg="adshexec will run in tty stdin mode." seqnum=5, date=2013-07-01T15:52:30.044+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX0092-I, msg="JOB1.STEP1 Step started." seqnum=6, date=2013-07-01T15:52:30.278+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX6116-I, msg="Command D:\bin\uap01.exe(line=5) succeeded. rc=0 E-Time=0.219s C-Time=0.030s" seqnum=7, date=2013-07-01T15:52:30.278+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX6597-I, msg="JOB1.STEP1 Step succeeded. rc=0 E-Time=0.234s C-Time=0.045s" seqnum=8, date=2013-07-01T15:52:30.294+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX0092-I, msg="JOB1.STEP2 Step started." seqnum=9, date=2013-07-01T15:52:30.450+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX6116-I, msg="Command D:\bin\uap02.exe(line=10) succeeded. rc=0 E-Time=0.141s C-Time=0.016s" seqnum=10, date=2013-07-01T15:52:30.450+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX6597-I, msg="JOB1.STEP2 Step succeeded. rc=0 E-Time=0.156s C-Time=0.032s" seqnum=11, date=2013-07-01T15:52:30.450+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX0092-I, msg="JOB1.STEP3 Step started." seqnum=12, date=2013-07-01T15:52:30.559+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX6116-I, msg="Command D:\bin\uap03.exe(line=15) succeeded. rc=0 E-Time=0.094s C-Time=0.015s" seqnum=13, date=2013-07-01T15:52:30.559+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX6597-I, msg="JOB1.STEP3 Step succeeded. rc=0 E-Time=0.109s C-Time=0.031s" seqnum=14, date=2013-07-01T15:52:30.559+09:00, pgmid=adshexec, jobid=18, pid=4768, msgid=KNAX0098-I, msg="JOB1 Job ended. rc=0 E-Time=0.531s C-Time=0.139s "
システム実行ログで,メッセージテキストの前に付加されるデータの意味を次に示します。
システム実行ログに出力されるデータ |
データの意味 |
---|---|
seqnum |
メッセージの通し番号 |
date |
出力した日時(yyyy-mm-ddThh:mm:ss.sssTZDの形式) |
pgmid |
プログラムID ジョブコントローラの場合,adshexecが出力されます。 |
jobid |
ジョブ識別子 |
pid |
プロセスID |
msgid |
出力メッセージのメッセージID |
msg |
出力メッセージのメッセージテキスト |
(4) トレースログの出力情報を定義する
トレースログは,JP1/Advanced Shellの内部トレースログです。JP1/Advanced Shellでトラブルが発生した場合に,問題点を解明するために採取する情報です。
トレースログの種類を次の表に示します。
項番 |
トレースログの種類 |
トレースログの出力先(デフォルト値) |
ファイル面数 |
ファイルサイズ |
---|---|---|---|---|
1 |
JP1/Advanced Shellの実行環境(WindowsおよびUNIX)のトレースログ※ およびJP1/Advanced Shellのジョブ定義スクリプト稼働実績情報出力コマンド(adshevtoutコマンド)のトレースログ※ |
|
《4》 ((1〜64)) |
《2》 ((1〜16)) |
2 |
JP1/Advanced Shell - Developerのエディタ以外のトレースログ※ |
共通アプリケーションフォルダ\Hitachi\JP1AS\JP1ASD\trace |
《4》 ((1〜64)) |
《2》 ((1〜16)) |
3 |
JP1/Advanced Shellのカスタムジョブのトレースログ |
共通アプリケーションフォルダ\Hitachi\JP1AS\JP1ASV\trace |
1 |
1 |
4 |
JP1/Advanced Shell - Developerのエディタのトレースログ |
共通アプリケーションフォルダ\Hitachi\JP1AS\JP1ASD\adshedit\trace |
1 |
1 |
5 |
JP1/Advanced Shell,JP1/Advanced Shell - Developerの共通コマンドのトレースログ |
共通アプリケーションフォルダ\Hitachi\JP1AS\misc\trace |
4 |
2 |
トレースを定義するために必要なパラメーターを次に示します。
-
TRACE_DIRパラメーター
トレースを出力するディレクトリのパス名を定義します。トレースログのファイル名はAdshTrace_n.log(nは面数)となります。
-
TRACE_FILE_CNTパラメーター
トレースを出力する面数を定義します。トレースログファイルは,指定した面数のファイルを順番にラップアラウンドして使用します。
-
TRACE_FILE_SIZEパラメーター
トレースを出力するファイルサイズを定義します。
-
TRACE_LEVELパラメーター
トレースを出力するレベルを定義します。
複数のユーザーが同じファイルにトレースを出力している場合,次のように動作します。
-
TRACE_FILE_CNTとTRACE_FILE_SIZEは,それぞれ,より大きい値を指定したユーザーの指定が有効になります。
-
TRACE_FILE_CNTとTRACE_FILE_SIZEを変更した場合は,既存のトレースファイルの面数およびファイルサイズの設定値と比較して,それぞれ,より大きい値を指定したユーザーの指定が有効になります。
トレースファイルの面数およびファイルサイズを小さくする場合は,トレースフォルダにあるファイルをすべて削除してください。
トレースフォルダにあるファイルをすべて削除する場合は,同じトレースファイルにトレースを出力しているジョブがないことを事前に確認してください。