On 2021-03-29, at 05:18:27, William Schoen wrote:
> 
> It is done by the access method or application writing the records.
>   
Thanks.  Of course IBM might document the implementation of access
methods, though not of user-written applications.

> All writes seen by the kernel are atomic.
> If there is buffering or other type of processing by the process doing the
> writes causing records to span writes calls, all bets are off.
> I think the access methods keep records on block boundaries, but this is
> probably not the case with C file streams.
>   
The sense of my question is, does the access method perform:
    buffer = RDW || data
    write( buffer )
which is atomic, subject to buffer size, or:
    write( RDW )
    write( data )
which risks another process's inserting a record between the
RDW and the data.  In fact, for FILEDATA=TEXT that hazard
could exist betwen "write( data )" and "write( NL )".


> MVS OpenEdition <mvs...@vm.marist.edu> wrote on 03/27/2021 12:11:11 PM:
> 
>> From: Paul Gilmartin 
>> Date: 03/27/2021 12:11 PM
>> 
>> (cross-posting)
>> FILEDATA=RECORD causes each record to be prefixed with a quasi-RDW.
>> Is that done by the kernel or the access method?  In either case,
>> if two processes allocate the same UNIX file witn FILEDATA=RECORD,
>> PATHOPTS=O_APPEND, will the PUTs appear atomic or might the RDWs
>> and bodies from the two processes appear intermixed?

Thanks again,
gil

----------------------------------------------------------------------
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