バッチ・ジョブに投入されて実行されるプログラムを対話式でディバッグするにはやや面倒な
手順を必要とする。
1. HOLD(*YES) にしてバッチ・ジョブを投入する。
他のジョブをディバッグするにはサービス・ジョブを開始する必要があるがサービス・ジョブの
開始のためにはジョブ名、ユーザー名、ジョブ番号が必要となる。
そこで単に SBMJOB したのではジョブ情報を調べるうちにジョブが終了してしまうので
SBMJOB CMD(CALL PGM(PGM001)) JOB(PGM001) HOLD(*YES)
のようにしてジョブ待ち行列でジョブを保留状態にして投入する。
2. WRKJOBQ コマンドによってジョブ情報を調べる。
WRKJOBQ QBATCH
または WRKSBMJOB
によってジョブ情報の識別として
ジョブ名、ユーザー名、ジョブ番号を調べてメモしておく。
3.サービス・ジョブを開始する。
取得した、ジョブ名、ユーザー名、ジョブ番号を指定して STRSRVJOB
コマンドによって
サービス・ジョブを開始する。
STRSRVJOB JOB(245399/QTR/PGM001)
4. ディバッグを開始する。
STRDBG
コマンドによってディバッグを開始します。
STRDBG PGM(QTROBJ/PGM001) UPDPROD(*YES)
5. 停止点を追加する。
ADDBKP
によって停止点を追加します。
6. ジョブ待ち行列を解放する。
WRKJOBQ QBATCH
または RLSJOBQ
コマンドによって HOLD になっていたジョブを解放すると
プログラムが起動されて停止点で停止します。
後はこれまでの対話式のディバッグと同じです。
7. ディバッグを終了する。
ディバッグを終了するには、まず ENDDBG
を行ってから ENDSRVJOB
によって
サービス・ジョブを終了してすべてのディバッグ処理を終結させます。