On 8/2/2012 12:45 PM, McKown, John wrote:
Oh, I forgot to mention that you can use LE functions to trap the abend,
writean 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.


Or, you could bring us in to teach "Using LE Services in z/OS" which
discusses all the callable services, including an example of coding and
using condition handlers in the language of your choice (from the list:
Assembler, COBOL, PL/I, C). Details at:

  http://www.trainersfriend.com/Language_Environment_courses/m512descr.htm



--
John McKown
Systems Engineer IV
IT

Administrative Services Group

HealthMarkets(r)

9151 Boulevard 26 * N. Richland Hills * TX 76010
(817) 255-3225 phone *
john.mck...@healthmarkets.com * 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:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of McKown, John
Sent: Thursday, August 02, 2012 1:28 PM
To: IBM-MAIN@LISTSERV.UA.EDU
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 *
john.mck...@healthmarkets.com * 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:IBM-MAIN@LISTSERV.UA.EDU] On Behalf Of Ron Thomas
Sent: Thursday, August 02, 2012 1:05 PM
To: IBM-MAIN@LISTSERV.UA.EDU
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





--

Kind regards,

-Steve Comstock
The Trainer's Friend, Inc.

303-355-2752
http://www.trainersfriend.com

* To get a good Return on your Investment, first make an investment!
  + Training your people is an excellent investment

* Try our tool for calculating your Return On Investment
    for training dollars at
  http://www.trainersfriend.com/ROI/roi.html

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to lists...@listserv.ua.edu with the message: INFO IBM-MAIN

Reply via email to