Why not fix your processing program to not abend? In COBOL, try verifying the 
record data before processing it. Perhaps a IF NOT NUMERIC type test. IMNSHO, 
writing a program which simply assumes that it's input data is 100% perfect and 
does not bother to double check it, is a poorly designed program. When that 
happens here, I get "snippy" with the programmer and am not particularily 
helpful. Most of them have learned how to do data testing.

Does your processing program do something to the record so that you know it's 
already been processed? If so, then check for "already processed" and skip it. 
If not, then why do an "update in place"? Why not read original and write to an 
update file? Then, if it abends, you delete the update file, fix the input 
file, and rerun the job. 

Or, you could keep a copy of the original data. If the job abends, compare the 
original with the updated file. That will tell you how far you have gotten. 
Change your program to accept a value from the PARM=, or an input file (likely 
DD *) which it uses as a "skip to record number" value. Do a READ in a loop for 
that many records in order to skip the already processed records.

Lastly, if you really need to, your processing program will need to somehow 
track what it has done. It could be as simple as updating a record counter on 
every READ. But, to have the record count available, the program would need to 
OPEN/WRITE/CLOSE some other file which will contain the record count. I say 
OPEN/WRITE/CLOSE because that's the only way that I know of to be sure that the 
buffer has been written to the file. And also to "overlay" so that the "check 
point" file contains only the most recent record number processed. The use the 
PARM= as described previously to skip that many records.

Another possibility mentioned previously is to use "checkpoint restart". I have 
never done this and don't know how to do it. But it is likely the most 
efficient (processig wise).

-- 
John McKown 
Systems Engineer IV
IT

Administrative Services Group

HealthMarkets(r)

9151 Boulevard 26 * N. Richland Hills * TX 76010
(817) 255-3225 phone * 
[email protected] * www.HealthMarkets.com

Confidentiality Notice: This e-mail message may contain confidential or 
proprietary information. If you are not the intended recipient, please contact 
the sender by reply e-mail and destroy all copies of the original message. 
HealthMarkets(r) is the brand name for products underwritten and issued by the 
insurance subsidiaries of HealthMarkets, Inc. -The Chesapeake Life Insurance 
Company(r), Mid-West National Life Insurance Company of TennesseeSM and The 
MEGA Life and Health Insurance Company.SM

> -----Original Message-----
> From: IBM Mainframe Discussion List 
> [mailto:[email protected]] On Behalf Of Ron Thomas
> Sent: Thursday, August 02, 2012 1:05 PM
> To: [email protected]
> Subject: Re: File Processing
> 
> The current abend is SOC7 & module needs to run in 
> production. The input file is comming from a third party 
> vendor and some reason the data isn the file is corrupted, 
> the program might get abended. 
> 
> We need a process to work in production so that once 
> restarted from the same step the program should be skipping 
> all the of the records it already processed . 
> 
> Thanks,
> Ron T
> 
> ----------------------------------------------------------------------
> For IBM-MAIN subscribe / signoff / archive access instructions,
> send email to [email protected] with the message: INFO IBM-MAIN
> 
> 
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to