Oh, I forgot to mention that you can use LE functions to trap the abend, write 
an error message, and continue. There are some basic examples in the SCEESAMP 
data set. For COBOL, look at IGZTCHDL, IGZTDIV, IGZTDIVS, IGZTDIVU, IGZTDIVZ, 
IGZTHAND (very good!), IGZTHDLR, IGZTHDLU, maybe more.

--
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 McKown, John
> Sent: Thursday, August 02, 2012 1:28 PM
> To: [email protected]
> Subject: Re: File Processing
> 
> 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
> 
> 
----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [email protected] with the message: INFO IBM-MAIN

Reply via email to