2.6.8 ジョブ実行結果とログの出力情報を定義する
ジョブの実行結果はスプールディレクトリに出力され,出力内容の一部はジョブ実行ログとして参照できます。また,トラブル発生時にログを採取し,トラブルの原因を調査できます。これらのログの出力先や出力内容を環境ファイルで定義します。
Advanced Shellを運用しているときに出力されるログ情報と格納先について,次の表に示します。
ログ情報 |
出力される情報 |
格納先 |
---|---|---|
ジョブ実行ログ |
バッチジョブのログ |
スプールルートディレクトリの配下 |
システム実行ログ |
Advanced Shellの統括的な実行ログ |
環境ファイルのLOG_DIRパラメーター※1で指定したディレクトリ |
【UNIX限定】 起動ログ※2 |
ユーザー応答機能管理デーモンの起動・終了ログ |
/opt/jp1as/systemの配下 |
- 注※1
パラメーターの指定がない場合,デフォルト値が適用されます。
- 注※2
-
ユーザー応答機能管理デーモンの起動・停止時に採取されるログ情報です。
このログ情報は,/opt/jp1as/systemディレクトリ下に次のファイル名で作成されます。
・物理ホストのユーザー応答機能管理デーモンの場合:adshmd.log
・論理ホストのユーザー応答機能管理デーモンの場合:adshmd_論理ホスト名.log
スプールの出力情報と,それぞれのログの出力情報の定義方法を次に説明します。
(1) スプールの出力情報を定義する
スプールに関するパラメーターについて,定義する出力情報ごとに説明します。
(a) スプールジョブ作成抑止機能の使用有無を決定する
スプールジョブ作成抑止機能を使用すると,スプールジョブが作成されなくなるため,スプールディレクトリのディスク容量の単調増加を防げます。また,スプールディレクトリ下の不要なディレクトリやファイルを削除する必要がなくなります。
スプールジョブ作成抑止機能の使用はSPOOLJOB_CREATEパラメーターで設定します。詳細については,「7.3.43 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) スプールジョブの標準出力と標準エラー出力の出力内容を定義する
ジョブを実行すると,ジョブの出力結果のほかに,ジョブコントローラの情報メッセージ,警告メッセージ,およびジョブ実行ログが出力されます。また,標準出力と標準エラー出力はスプールジョブディレクトリ下のファイルへ出力されます。
ジョブの実行結果だけをほかのプログラムで利用するなどの理由で,標準出力と標準エラー出力のスプールジョブディレクトリ下のファイルへの出力を抑止したい場合には,次のパラメーターまたはコマンドのオプションで簡潔出力モードまたは最小出力モードを指定します。
OUTPUT_MODE_ROOTパラメーター
ルートジョブに対して,拡張出力モード,簡潔出力モードまたは最小出力モードを指定します。
OUTPUT_MODE_CHILDパラメーター
子孫ジョブに対して,拡張出力モード,簡潔出力モードまたは最小出力モードを指定します。
adshexecコマンドの-mオプション
ジョブに対して,拡張出力モード,簡潔出力モードまたは最小出力モードを指定します。
adshscripttoolコマンドの-mオプション
子孫ジョブに対して,簡潔出力モードまたは最小出力モードを指定します。
これらのパラメーターとオプションを指定しなかった場合は拡張出力モードとなり,標準出力と標準エラー出力はスプールジョブディレクトリ下のファイルへ出力されます。
なお,簡潔出力モードと最小出力モードでは,ジョブコントローラの情報メッセージと警告メッセージは標準出力,標準エラー出力へ出力しません。また,ジョブ終了時にジョブ実行ログを標準エラー出力へ出力しません。さらに,最小出力モードでは,出力抑止したメッセージはスプールジョブディレクトリ下のジョブ実行ログにも出力しません。
簡潔出力モード,拡張出力モードおよび最小出力モードの出力内容の差異については,「3.4.4 ジョブ実行ログへの情報メッセージと警告メッセージの出力を抑止する」を参照してください。
(2) ジョブ実行ログの出力情報を定義する
ジョブ実行ログに関して環境設定時に設定する内容について説明します。ジョブ実行ログの出力内容については「3.5 ジョブ実行ログ」を参照してください。
(a) 標準エラー出力に出力するジョブ実行ログの種類を定義する
ジョブが終了すると,ジョブ実行ログとして次に示す内容が標準エラー出力へ出力されます。出力されたジョブ実行ログは,adshexecコマンドの実行時の端末画面や,JP1/AJS - Viewの[実行結果詳細]ダイアログボックスなどに表示されます。
JOBLOGファイル(コマンドの実行結果やファイルの割り当て結果など,ジョブの動作状況を示すメッセージ)
ジョブ定義スクリプト
ジョブ実行中の標準エラー出力の内容
このうち,ジョブ実行中の標準エラー出力の内容だけを標準エラー出力へ出力させるには,次のパラメーターを指定します。これによって,ジョブ実行ログの出力内容を限定できます。
JOBEXECLOG_PRINTパラメーター
なお,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形式で出力します。
出力するメッセージについては,「12.2 メッセージの出力先」を参照してください。
ローテーションを行い,バックアップが作成されます。
環境ファイルのLOG_FILE_SIZEパラメーターに指定されたファイルサイズを超える直前に,システム実行ログのファイル名を変更してバックアップを作成し,新たにシステム実行ログを作成して出力を継続します。
バックアップのファイル名は,AdshLog_N.log(Nは整数)となります。Nには新しいバックアップから昇順に1から番号を割り当てます。
環境ファイルのLOG_FILE_CNTパラメーターに指定された面数のバックアップを作成し,面数を超えた場合は古いバックアップを削除します。
(b) システム実行ログを出力するために必要なパラメーター
システム実行ログを出力するために必要なパラメーターを次に示します。
LOG_DIRパラメーター
システム実行ログを出力するディレクトリのパス名を定義します。
LOG_FILE_CNTパラメーター
システム実行ログをバックアップする面数を定義します。
LOG_FILE_SIZEパラメーター
システム実行ログを出力するファイルサイズを定義します。
-
LOG_CREATEパラメーター
システム実行ログを出力するか,出力しないかを指定します。
複数のユーザーが同じファイルにシステム実行ログを出力している場合には,LOG_FILE_CNTとLOG_FILE_SIZEは,最後にシステム実行ログの出力を開始したユーザーの設定値が有効になります。このため,LOG_FILE_CNTとLOG_FILE_SIZEは同じ値で運用することを推奨します。
(c) システム実行ログの出力内容
システム実行ログに出力されるメッセージの例を次に示します。
seqnum=1, date=2023-05-17T10:20:14.775+09:00, pgmid=adshexec, jobid=55, pid=8664, msgid=KNAX0004-I, msg="ジョブ識別子=000055, JP1NBQSQueueName=, ジョブ番号="
seqnum=2, date=2023-05-17T10:20:14.775+09:00, pgmid=adshexec, jobid=55, pid=8664, msgid=KNAX0091-I, msg="JOB1 ジョブが開始しました。"
seqnum=3, date=2023-05-17T10:20:14.775+09:00, pgmid=adshexec, jobid=55, pid=8664, msgid=KNAX7901-I, msg="ジョブコントローラは,ジョブ終了時にすべての非同期実行プロセスの完了を待ちます。"
seqnum=4, date=2023-05-17T10:20:14.775+09:00, pgmid=adshexec, jobid=55, pid=8664, msgid=KNAX7902-I, msg="ジョブコントローラは,""端末入力モード""で動作します。"
seqnum=5, date=2023-05-17T10:20:14.775+09:00, pgmid=adshexec, jobid=55, pid=8664, msgid=KNAX0092-I, msg="JOB1.STEP1 ステップが開始しました。"
seqnum=6, date=2023-05-17T10:20:17.822+09:00, pgmid=adshexec, jobid=55, pid=8664, msgid=KNAX6116-I, msg="コマンド(D:\bin\uap01.exe, 行番号=3)が正常終了しました。rc=0 E-Time=3.038s C-Time=0.031s"
seqnum=7, date=2023-05-17T10:20:17.822+09:00, pgmid=adshexec, jobid=55, pid=8664, msgid=KNAX6597-I, msg="JOB1.STEP1 ジョブステップが正常終了しました。rc=0 E-Time=3.039s C-Time=0.031s"
seqnum=8, date=2023-05-17T10:20:17.822+09:00, pgmid=adshexec, jobid=55, pid=8664, msgid=KNAX0092-I, msg="JOB1.STEP2 ステップが開始しました。"
seqnum=9, date=2023-05-17T10:20:19.900+09:00, pgmid=adshexec, jobid=55, pid=8664, msgid=KNAX6116-I, msg="コマンド(D:\bin\uap02.exe, 行番号=6)が正常終了しました。rc=0 E-Time=2.075s C-Time=0.015s"
seqnum=10, date=2023-05-17T10:20:19.900+09:00, pgmid=adshexec, jobid=55, pid=8664, msgid=KNAX6597-I, msg="JOB1.STEP2 ジョブステップが正常終了しました。rc=0 E-Time=2.077s C-Time=0.015s"
seqnum=11, date=2023-05-17T10:20:19.900+09:00, pgmid=adshexec, jobid=55, pid=8664, msgid=KNAX0092-I, msg="JOB1.STEP3 ステップが開始しました。"
seqnum=12, date=2023-05-17T10:20:20.978+09:00, pgmid=adshexec, jobid=55, pid=8664, msgid=KNAX6116-I, msg="コマンド(D:\bin\uap03.exe, 行番号=9)が正常終了しました。rc=0 E-Time=1.076s C-Time=0.016s"
seqnum=13, date=2023-05-17T10:20:20.978+09:00, pgmid=adshexec, jobid=55, pid=8664, msgid=KNAX6597-I, msg="JOB1.STEP3 ジョブステップが正常終了しました。rc=0 E-Time=1.078s C-Time=0.031s"
seqnum=14, date=2023-05-17T10:20:20.978+09:00, pgmid=adshexec, jobid=55, pid=8664, msgid=KNAX0098-I, msg="JOB1 ジョブが終了しました。rc=0 E-Time=6.200s C-Time=0.077s"
システム実行ログで,メッセージテキストの前に付加されるデータの意味を次に示します。
システム実行ログに出力されるデータ |
データの意味 |
---|---|
seqnum |
メッセージの通し番号 |
date |
出力した日時(yyyy-mm-ddThh:mm:ss.sssTZDの形式) |
pgmid |
プログラムID ジョブコントローラの場合,adshexecが出力されます。 |
jobid |
ジョブ識別子 |
pid |
プロセスID |
msgid |
出力メッセージのメッセージID |
msg |
出力メッセージのメッセージテキスト |