I have learnt through Net that Debugging a Batch job
involves
1. Submit the job with the HOLD (*YES) parameter:
SBMJOB HOLD(*YES) or Hold the job queue that before
submitting the job
by using the HLDJOBQ command.
2. Determine the job name, user, and number of the submitted
job by using the WRKSBMJOB command.
3. Type the Start Service Job command on your screen:
STRSRVJOB JOB(job name/user/number)
4. Type the Start Debug command on your screen: STRDBG
5. Release the job in the jobq. Type WRKSBMJOB and then put
a 6
beside the job to be released and press enter, or, if the
job queue was
put on hold, release the job queue with the RLSJOBQ command.
6. A display appears when the job is ready to start, saying
that you
can now begin debugging the job. Press F10 to show the
Command Entry
display.
7. Now you can start debugging by entering an Add Break
Point command:
ADDBKP
8.ENDDBG
9.ENDSRVJOB
I tried this for RPG/400 Program and up to six steps of the
above it's ok,but for me no source is displayed and i typed
DSPMODSRC in Command line but still i can't see the sourceif
i press F.10 and enter command ADDBKP i don't know how to
add break points through it,usually i add break points using
F.6 for Interactive job debugs,but since this is batch i
don't know sir,Please help me out.
I was asked this question in a interview,i know only RPG/400
and i’m asking for debugging of RPG/400 program only sir.
or is it only possible to debug BATCH RPG ILE JOB and it is
not possible to debug BATCH RPG/400 JOB kindly help me out
sir
Answers were Sorted based on User's Feedback
Answer / sakthi
If you are not getting the source after entering DSPMODSRC
means then you have to check whether the source is in the
right library. SOmetimes the control may point to someother
library and hence you won't get the source to add
breakpoint.
Also make sure that you have compiled the source with
*SRCDBG or *SOURCE.
| Is This Answer Correct ? | 10 Yes | 2 No |
Answer / katiyar
As you already aware and mentioned above about the batch
job,just need the steps to executes in real scenario.
I debugged a RPG program in real scenario successfully.
Please use below steps.
1 HLD JOB Q
2 SBM JOB
3 STRSRVJOB
4 STRDBG PGM
5 F12(WITHOUT BRK POINT)
6 RLSJOBQ JOBQ
7 F10
8 DSPMODSRC
9 ADD BREAK POINT
10 F12
11 F12
12 ENTER
13 ENDDBG
14 ENDSRVJOB
----------------------------------------------------------
After HLDJOBQ and SBMJOB , use command WRKJOBQ <Jobq> and
select the job and note down its job name, user and job
number, which is required at step third STRSRVJOB.
---------------------------------------------------------
Give a try and revert. Hope this will help you.
----------------------------------------------------------
| Is This Answer Correct ? | 6 Yes | 0 No |
What would be the result on writing a data record to a PF file using the "WRITE" opcode after the SETON *ON *INLR statment?
What is the length of Signature?
ESCAPE message sent by child program can be handled by parent program using which keyword?
how do I preserve and clean the array?
What is I90(Insure 90)?
What is the name of default out queue when user logs inn to syatem with valid profile?
what is post opcode do
What is the purpose of record level identifier?
RPG/400 number of Records present in a physical file using file information data structure FPF001 IP E DISK F KINFDS INFDS1 IINFDS1 DS I *RECORD RECORD Is this coding correct sir,i have given I P E that is I- input,P-primary file,E-externally described. Primary to use RPG logic cycle,is this the correct method because we have to find number of records present using file information data structure in RPG/400 without doing any input/output operations on the file and also without using DSPFD,SQL. If the above coding is correct means,when i compile the program it gets compiled,but if i call the program it does not return anything,i need number of records,please complete the coding sir.
WHAT IS MENT BY RECORD LEVEL IDENTIFIER ? WHAT IS THE PURPOSE OF THIS?
i'm working on progA , in that program i want to see the userids of the users who work on this program?
HI,1: What is the function of 'SETON LR' AND '*INLR=*ON ? 2:Can we used "seton lr" OR "*INLR = *ON" in between the program code ? 3:if yes then according to there function the code which is written acter seton lr/ *inlr should not be execute . Can any one tell me why those code get executed ?