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