コマンドの省略値の変更、SIGNOFFでジョブ・ログを書かせる方法
Question
ジョブ・ログを記録するように以下のようにジョブ記述を変更しました。
CHGJOBD JOBD (QDFTJOBD) LOG(4 00 *SECLVL) LOGCLPGM(*YES) LOGOUTPUT(*JOBEND)
SBMJOBコマンドでバッチ投入したバッチ型ジョブはジョブ・ログが記録されますが、対話型のジョブは記録されません。
WRKJOBの「2. ジョブ定義属性表示」で確認すると、「ジョブ・ログの出力」は*NOLISTでなく、*SECLVLで*JOBENDとなっています。
何が原因でしょうか。
Answer
対話型ジョブの場合に終了するときにサインオフ(SIGNOFF)をしますが、サインオフ(SIGNOFF)コマンドの省略値の設定でジョブ・ログ *NOLISTとなっているのが原因と考えられます。
コマンドラインからSIGNOFFと入力してF4でプロンプト表示をしてください。
表示されたら、F11でキーワード表示に切り替えます。
上記画面のように*NOLISTであった場合にデフォルトを変えてみてください。
変更するコマンドおよびパラメタの指定方法は、以下の例のようになります。
CHGCMDDFT CMD(SIGNOFF) NEWDFT('LOG(*LIST)')
変更後に、先ほどのように確認すると*LISTとなっていることが確認できます。
※気が変わって戻す場合は以下の例になります。
CHGCMDDFT CMD(SIGNOFF) NEWDFT('LOG(*NOLIST)')
これで、対話型のジョブでサインオフしてもジョブ・ログが書かれるようになりますので、お試し頂ければと思います。
業務メニュー等で終了時にSIGNOFFをコーデイングしている時に明示的に*NOLISTを指定している場合は、先ほどの省略値を変更しても*LISTは有効になりませんので、プログラムの修正を行ってください。
他のコマンドでも同様にCHGCMDDFTでデフォルトのパラメタを変更することが出来ます。
注意点としてはOSのメンテナンス作業等でデフォルトに戻ったり、何らかの不具合が発生する可能性があるという事です。
省略値を変更したコマンドがある場合は、必ず、台帳管理をして記録(変更内容)を残してください。
また、OSメンテナンス作業後に設定が元に戻っていないかを必ず確認し、動作テストも行うようにしてください。
参考情報:コマンド省略時値変更 (CHGCMDDFT)
https://www.ibm.com/docs/ja/i/7.5?topic=ssw_ibm_i_75/cl/chgcmddft.html
by けやきのじぃじ