View previous topic :: View next topic
|
Author |
Message |
bmwibm
New User
Joined: 24 Apr 2008 Posts: 5 Location: Express Scripts
|
|
|
|
I have listed all of the questions at the bottom.
In a IBM Enterprise COBOL for z/OS 3.4.1 program when would a record be physically written to disk?
The output file is defined with LRECL=2500 and blksize=30000 Disposition is disp=(new,catlg,catlg).
I always thought when the block is full, the buffers are flushed. So in the above example,when the WRITE statement for the 12th record in the block is written. Is this true?
What if the LRECL and BLKSIZE were the same? This is inefficent but does guarentee that on every write the record is written to disk.
On a user abend we call ILBOABN0 to force an abend and I thought doing this causes the buffers to be flushed, so any data in the buffers but not written to disk would now be written. But, I cannot find any documentation on what ILBOABN0 does or how it works.
Questions:
When does a record physically get written to disk?
Does setting the blksize = to the lrecl guarentee when the write is executed the record is physically written to disk?
Any documenation on ILBOABN0?
If the operator cancels the job, ILBOABN0 is not called. So what would happen to my output file? would the entire block in the buffer be lost?
Thank You. |
|
Back to top |
|
|
Phrzby Phil
Senior Member
Joined: 31 Oct 2006 Posts: 1042 Location: Richmond, Virginia
|
|
|
|
I think that you must also ensure single-buffering; default is most likely double (or more?).
I recall years ago finding abends not after the last line printed, but one WRITE command after that. |
|
Back to top |
|
|
dbzTHEdinosauer
Global Moderator
Joined: 20 Oct 2006 Posts: 6966 Location: porcelain throne
|
|
|
|
There used to be a 'WRITE IMMEDIATE' clause. not sure if it is still there.
If you have good restart logic, does not matter. |
|
Back to top |
|
|
dneufarth
Active User
Joined: 27 Apr 2005 Posts: 419 Location: Inside the SPEW (Southwest Ohio, USA)
|
|
|
|
Considering all dasd boxes now have caching; I'm not sure you can tell when the physical aspect upon the medium is done. |
|
Back to top |
|
|
dick scherrer
Moderator Emeritus
Joined: 23 Nov 2006 Posts: 19244 Location: Inside the Matrix
|
|
|
|
Hello,
Quote: |
Considering all dasd boxes now have caching; |
and not all of the caches work exactly the same and many systems mix multiple types of both logical and physical dasd, there is no single definitive answer.
Given that most batch (where this is mostly an issue) programs process multiple types of files (spool, vsam, qsam, database etc), knowing exactly what is written and what is queued to write approachs the impossible (IMHO).
Quote: |
If you have good restart logic, does not matter. |
Also IMHO, by far the best way to deal with this type of data issue - when a restart "in the middle" must be done.
In fact, over the years of constantly faster cpus and dasd, my recommendation has become that jobs be restarted from the beginning rather than trying to follow some (possibly outdated) convoluted restart procedure that often caused even more down-time. |
|
Back to top |
|
|
bmwibm
New User
Joined: 24 Apr 2008 Posts: 5 Location: Express Scripts
|
|
|
|
Thanks for all the responses and suggestions. I will restart the program from the top all of time. |
|
Back to top |
|
|
|