Open System Services System Calls Reference Manual (G06.29+, H06.08+, J06.03+)

System Functions (n - p) PUT_WRITEUPDATEX(2)
is also the maximum structured transfer size for DP2.
Deleting locked records
Deleting a locked record implicitly unlocks that record unless the file is audited,
in which case the lock is not removed until the transaction terminates.
Waited PUT_WRITEUPDATEX() calls
If a waited PUT_WRITEUPDATEX() call is executed, the count_w ritten
parameter indicates the number of bytes actually written.
Nowait PUT_WRITEUPDATEX() calls
If a nowait PUT_WRITEUPDATEX() call is executed, count_w ritten has no
meaning and can be omitted. The count of the number of bytes written is
obtained through the count-transferre d parameter of the Guardian AWAITIOX
procedure when the I/O completes.
The PUT_WRITEUPDATEX() procedure must finish with a corresponding
call to the Guardian AWAITIOX procedure when used with a file that is opened
for nowait I/O. For files audited by the Transaction Management Facility (TMF),
the AWAITIOX procedure must be called before the
PUT_ENDTRANSACTION() or PUT_ABORTTRANSACTION() function
is called.
Do not change the contents of the data buffer between the initiation and comple-
tion of a nowait write operation. A retry can copy the data again from the user
buffer and cause the wrong data to be written. Avoid sharing a buffer between a
write and another I/O operation because the contents of the write buffer might
change before the write is completed.
Invalid write operations to queue files
Attempts to perform PUT_WRITEUPDATEX() operations are rejected with a
Guardian file-system error 2.
Disk File Considerations
Large data transfers
To enable large data transfers (more than 4096 bytes), you can use
PUT_SETMODE() function 141. See the description of SETMODE functions
in the Guardian Procedure Calls Reference Manual.
Random processing and PUT_WRITEUPDATEX()
For key-sequenced, relative, and entry-sequenced files, random processing
implies that a designated record must exist. Positioning for
PUT_WRITEUPDATEX() is always to the record described by the exact value
of the current key and current-key specifier. If such a record does not exist, the
call to PUT_WRITEUPDATEX() is rejected with Guardian file-system error
11 (record does not exist).
File is locked
If a call to PUT_WRITEUPDATEX() is made and the file is locked through a
file number other than that supplied in the call, the call is rejected with Guardian
file-system error 73 (file is locked).
When the just-read record is updated
A call to PUT_WRITEUPDATEX() following a call to PUT_READX( ),
without intermediate positioning, updates the record just read.
527186-023 Hewlett-Packard Company 5307