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
