1. Holding the batch job
By submitting your email address, you agree to receive emails regarding relevant topic offers from TechTarget and its partners. You can withdraw your consent at any time. Contact TechTarget at 275 Grove Street, Newton, MA.
In order to debug a batch job it must still be on the job queue when you issue the start debug command, i.e. it cannot be active. All the tips I have seen (including last month's Hall of Fame winner) achieve this by one of two methods; either using the HOLD (*YES) parameter on the SBMJOB command or by holding the job queue before submitting the batch job and then releasing it again after starting debug. The first of these is acceptable but is only available if the batch job is being submitted manually from a command line, which most aren't (and if you're submitting it from a command line, why not just call it directly and debug interactively?). The second solution of holding the job queue is likely to make you unpopular with other users if you forget to release it again! My solution is to record the following command into a 'Play' key (or a macro if you're using Client Access on a PC).
sbmjob cmd(dlyjob dly(300)) job(stopjobq)
This submits a 'do nothing' job which stays active for 5 minutes (300 seconds) and then terminates. This effectively 'stops' the job queue for 5 minutes, during which time you can submit your batch job and put it into debug mode. You don't need to remember to cancel the holding job. Note that the job (stopjobq) parameter is optional but explains the purpose of the job to anyone looking at active jobs. The job queue must be a single-thread queue for this to work, i.e. a maximum of one job active at a time.
2. Servicing the batch job
The Start Service Job command has parameters for the job name, the user name and the job number. Finding the job number is both tedious and error-prone and usually involves writing down the six-digit number! What most people don't realize is that these parameters are optional. Simply fill in the job name and leave the other fields blank. The strsrvjob command will provide you with a selection screen listing all the jobs in the system with that name allowing you to enter a '1' beside the required job. Very conveniently, jobs with a status of JOBQ appear at the top of the list so the one you want will usually be the first one.
MORE INFORMATION ON THIS TOPIC
The Best Web Links: tips, tutorials and more.
Ask your programming questions--or help out your peers by answering them--in our live discussion forums.
Ask the Experts yourself: Our application development gurus are waiting to answer your programming questions.