after udatingg first 110 rows, my job abends. now how do i
change my cobol program so that when i restart the Job it
will start updating from 111th row ( i.e in next run I
di=ont want to update those 110 rows which are already been
updated in the first run before job abend)
Answers were Sorted based on User's Feedback
Answer / raj
You can use check point logic in JCL or you can do this in
program using a recovery-restart table.
1)First time when program runs it reads this table. No
records .. proceed..
2)Process 50 records .. store 50th record key in table..
then proceed to process file from 50th record..
3) Say program failed at 65th record..
4)Restart the job..
5)Program first look the restart table.. It has key value
of 50th record..
6)So set pointer to 51st record and start processing.
7)If your system is unrealiable and set commit frequency 5
or 10 records..
| Is This Answer Correct ? | 5 Yes | 1 No |
Answer / sasha
- allocate control file with counter init to zero
- when you successfully processed your input records
accumulate your counter on control file
- if you abend then in your program first find out in
control counter is > 0. Then you reread your input file
until number of records read is equal to your counter on
control file. Next record is your current record to be
processed
| Is This Answer Correct ? | 3 Yes | 0 No |
Answer / kavitha
Use PARM parameter in JCL to pass the key value of the 111
record and process the program
| Is This Answer Correct ? | 1 Yes | 0 No |
Answer / kapil arya
For this situation, we must use the Check Point and Restart
Logic in COBOL program wherever you are reading or modifing
the Record from a file or a Db2 Tables.
For this you have to define one counter variable in working
storage section which contains your Recod Key.
01 WS-EMP-REC-KEY PIC X(8).
01 WS-SVE-CNT-KEY PIC X(8).
And after that first time when you will start reading the
file you have to check it
If WS-SVE-CNT-KEY = SPACES then start reading the record
from first record and as per you requirement you can save
you record key in this counter variable after 500 (for E.g)
and increase you counter variable by 1 after reading each
record when the counter variable will reach on 500 then
move this value to save variable.
Move WS-EMP-REC-KEY TO WS-SVE-CNT-KEY.
And then Write your 500 record in a file. And using the
COMMIT save this status. and after that set the counter
value to 0 again and start it from top...
And suppose You job abends after reading 1055 records that
means 1000 records has been written in your o/p file. and
when you restart your job again it will match again
If WS-SVE-CNT-KEY = SPACES then this variable will have the
record key of 1000th record then it will start readind the
record from 1001..
| Is This Answer Correct ? | 0 Yes | 5 No |
Answer / navjeet kumar
we have to use restart command to update from 111th row
| Is This Answer Correct ? | 0 Yes | 7 No |
What are ISOLATION LEVELS? Where do we need to specify them?
how we can reverse the string in the cobol for example satheesh can be reveresed as hseehtas
How do u write test cases?
If I want to increase the Limit in GDG. What should I do?
what is meant by binary search?
How to execute a set of JCL statements from a COBOL program?
is this below syntax correct? CALL 'subprg' using A,B Please help
How do u know what version of cobol u are using?
Size of a column has been changed in DB2 table (Suppose it was of 5 characters and later changed to 4 characters) and forgot to change the DCLGEN in COBOL program, what will happen during the execution of code? If the program Abends then what will be the error? If it doesn't abend then hpw the error can be catched?
What is the difference between comp and comp-3?
wht is packed decimal in cobol
how to resolve the file status 47.......