2.1.8 ジョブ実行結果とログの出力情報を定義する
ジョブの実行結果はスプールディレクトリに出力され,出力内容の一部はジョブ実行ログとして参照できます。また,トラブル発生時にログを採取し,トラブルの原因を調査できます。これらのログの出力先や出力内容を環境ファイルで定義します。
JP1/Advanced Shellを運用しているときに出力されるログ情報と格納先について,次の表に示します。
ログ情報 |
出力される情報 |
格納先 |
---|---|---|
ジョブ実行ログ |
バッチジョブのログ |
スプールルートディレクトリの配下 |
システム実行ログ |
JP1/Advanced Shellの統括的な実行ログ |
環境ファイルのLOG_DIRパラメーター※で指定したディレクトリ |
- 注※
パラメーターの指定がない場合,デフォルト値が適用されます。
スプールの出力情報と,それぞれのログの出力情報の定義方法を次に説明します。
(1) スプールの出力情報を定義する
スプールに関するパラメーターについて,定義する出力情報ごとに説明します。
(a) スプールジョブ作成抑止機能の使用有無を決定する
スプールジョブ作成抑止機能を使用すると,スプールジョブが作成されなくなるため,スプールディレクトリのディスク容量の単調増加を防げます。また,スプールディレクトリ下の不要なディレクトリやファイルを削除する必要がなくなります。
スプールジョブ作成抑止機能の使用はSPOOLJOB_CREATEパラメーターで設定します。詳細については,マニュアル「JP1/Advanced Shell」の「SPOOLJOB_CREATEパラメーター」の説明を参照してください。
スプールジョブ作成抑止機能を使用している間は,ルートジョブおよび子孫ジョブは常に最小出力モードで動作します。
また,スプールジョブ作成抑止機能を使用した場合でも,スプールディレクトリは必要です。
(b) スプールルートディレクトリのパス名を定義する
スプールルートディレクトリのパス名を定義するパラメーターを次に示します。
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の情報メッセージと警告メッセージは標準出力,標準エラー出力へ出力しません。また,ジョブ終了時にジョブ実行ログを標準エラー出力へ出力しません。さらに,最小出力モードでは,出力抑止したメッセージはスプールジョブディレクトリ下のジョブ実行ログにも出力しません。
拡張出力モードおよび最小出力モードの出力内容の差異については,マニュアル「JP1/Advanced Shell」の「ジョブ実行ログへの情報メッセージと警告メッセージの出力を抑止する」の説明を参照してください。
(2) ジョブ実行ログの出力情報を定義する
ジョブ実行ログに関して環境設定時に設定する内容について説明します。ジョブ実行ログの出力内容については「4.2.1 ジョブ実行ログ」を参照してください。
(a) 標準エラー出力に出力するジョブ実行ログの種類を定義する
ジョブが終了すると,ジョブ実行ログとして次に示す内容が標準エラー出力へ出力されます。出力されたジョブ実行ログは,adshexecコマンドの実行時の端末画面や,JP1/AJS - Viewの[実行結果詳細]ダイアログボックスなどに表示されます。
JOBLOGファイル(コマンドの実行結果やファイルの割り当て結果など,ジョブの動作状況を示すメッセージ)
ジョブ定義スクリプト
ジョブ実行中の標準エラー出力の内容
このうち,ジョブ実行中の標準エラー出力の内容だけを標準エラー出力へ出力させるには,次のパラメーターを指定します。これによって,ジョブ実行ログの出力内容を限定できます。
JOBEXECLOG_PRINTパラメーター
ジョブを最小出力モードで実行した場合は,JOBEXECLOG_PRINTパラメーターの指定に関係なく,ジョブ終了時にジョブ実行ログを標準エラー出力に出力しません。
(3) システム実行ログの出力情報を定義する
システム実行ログとは,バッチジョブの実行履歴を統括的に参照するためのシステム管理者向けのログ情報です。
このログ情報は,環境ファイルのLOG_DIRパラメーターで指定したディレクトリ下のAdshLog.logに出力されます。パラメーターに設定した条件(サイズなど)に従って,ファイル名のローテーション(AdshLog_1.log,AdshLog_2.log,…AdshLog_N.log)が実施されます。システム実行ログのファイルはローテーション時に新しく作成されるため,ファイルの所有者はローテーション時のユーザーになります。
(a) システム実行ログの出力の流れ
システム実行ログには,各ジョブコントローラプロセスで実行しているバッチジョブの情報が出力されます。環境ファイルにシステム実行ログの出力先,サイズおよび面数を指定できます。システム実行ログの出力の流れを次に示します。
システム実行ログは次のように作成されます。
システム実行ログに出力するメッセージを集め,CSV形式で出力します。
出力するメッセージについては,マニュアル「JP1/Advanced Shell」の「メッセージの出力先」の説明を参照してください。
ローテーションを行い,バックアップが作成されます。
環境ファイルの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-12-06T18:27:12.045+09:00, pgmid=adshexec, jobid=70, pid=6616, msgid=KNAX0004-I, msg="ジョブ識別子=000070, JP1NBQSQueueName=, ジョブ番号="
seqnum=2, date=2013-12-06T18:27:12.060+09:00, pgmid=adshexec, jobid=70, pid=6616, msgid=KNAX0091-I, msg="JOB1 ジョブが開始しました。"
seqnum=3, date=2013-12-06T18:27:12.060+09:00, pgmid=adshexec, jobid=70, pid=6616, msgid=KNAX7901-I, msg="ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセスの完了を待ちます。"
seqnum=4, date=2013-12-06T18:27:12.060+09:00, pgmid=adshexec, jobid=70, pid=6616, msgid=KNAX7902-I, msg="ジョブコントローラは,""端末入力モード""で動作します。"
システム実行ログで,メッセージテキストの前に付加されるデータの意味を次に示します。
システム実行ログに出力されるデータ |
データの意味 |
---|---|
seqnum |
メッセージの通し番号 |
date |
出力した日時(yyyy-mm-ddThh:mm:ss.sssTZDの形式) |
pgmid |
プログラムID ジョブコントローラの場合,adshexecが出力されます。 |
jobid |
ジョブ識別子 |
pid |
プロセスID |
msgid |
出力メッセージのメッセージID |
msg |
出力メッセージのメッセージテキスト |