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 |
How you can delete a record from a ps file in cobol?
Which is the default, TEST BEFORE or TEST AFTER for a PERFORM statement?
) How do u handle errors in BMS macro?
Can we put move statement in COBOL copybook
wht is the use of evalute verb ? how do u declare recfm in cobol and jcl ?
can you please let me know if there is any walkins for COBOL/PLI/DB2/IMS/JCL in pune other than IBM and ITC infotech
How many maximum number of procedures can we write in one COBOL program?
i was faced one question- i have value -00001234.56 Suppress the zeroes and the output should be -1234.56 But Not - 1234.56 spaces should not be available after suppressing the zeroes. logic in jcl and cobol?
write a program to eliminate duplicate records in a input file and send them to output file.THIS IS IGATE RECENT QUESTIONN.....JUST 1 WEEK BACKKKK...
What is the difference between a binary search and a sequential search? What are the pertinent cobol commands?
consider the following piece of code 01 GROSS-PAY 05 BASIC-PAY PIC 9(5) 05 ALLOWENCES PIC 9(3) if BASIC-PAY has a value 1000 and ALLOWENCES has a value of 250,what will be displayed by the statement DISPLAY GROSS-PAY a.1250 b.01000250 c.01250 d.1.250
How can we increase the size of an existing PDS to include more no. of modules.