Johnny Luo wrote:
On 8/26/06, Tom Marchant <[EMAIL PROTECTED]> wrote:


PC hardware shouldn't be the problem, since z/OS is reporting 3 million
EXCPs.  That's a lot of I/O.



Tom, thanks a lot!!!!!!!!!!!!!!!!!!!!!!!!

Because I never worked on a real z machine(except for some small work),
I'm not sure about the cause of this problem. Now that you told me that
that's a lot of I/O no matter it's a real or not-real zos, I feel i should
do more
research on this before bothering our customer.


Could it be that you REWRITE with a different record length and COBOL has to

shift the whole file?  Perhaps a GTF  trace will help you figure out what
is
happening.


You might do better to write a third file, rather than REWRITE the whole

file.  Then either rename the third file or copy it back over the INFILE.
It would provide better recovery in the event of an abend, as well.



Yes, you're right. Before this project, i dealed with some COBOL batch
systems and
they seldom use 'rewrite' and just write output to a totally new QSAM file.

But our customer's original PL/I programs use 'rewrite' and at this time we
cannot
change that(we're converting PL/I to COBOL but we cannot modify the original
PL/I
programs). And we must first run customer's PL/I programs so that we can run
our
converted cobol programs later to compare the output.

Because the pl/i program is simple, i'll put its main logic here:
(It's our customer's production program)

DO WHILE (!EOF_FILEA & !EOF_FILEB);
 DO WHILE (!EOF_FILEB & FILEA_ACT<=FILEB_ACT);
    IF (FILEA_ACT = FILEB_ACT) THEN DO;
       FILEB_AMT = FILEA_AMT;
       REWRITE FILE(FILEB) FROM(FILEB_REC);
    END;
    READ FILE(FILEB)  INTO(FILEB_REC);
 END;
 READ FILE(FILEA) INTO(FILEA_REC);
END;

So your equivalent COBOL logic is something like this?

perform until end-filea or end-fileb
  perform until end-fileb or filea-act > fileb-act
    if filea-act = fileb-act
      move filea-amt to fileb-amt
      rewrite fileb-rec
    end-if
    read fileb at end set end-fileb
  end-perform
  read filea at end set end-filea
end-perform

close filea fileb

Kind regards,

-Steve Comstock

----------------------------------------------------------------------
For IBM-MAIN subscribe / signoff / archive access instructions,
send email to [EMAIL PROTECTED] with the message: GET IBM-MAIN INFO
Search the archives at http://bama.ua.edu/archives/ibm-main.html

Reply via email to