Guardian Procedure Calls Reference Manual
maximum PFS size is 32 MB. This limits the number of concurrent no-wait operations with
large read-count or write-count values. Perform the following steps to work around this limit:
1. Define the read and write buffers with sizes in multiples of 16KB.
2. Call the USERIOBUFFER_ALLOW_ procedure before making any calls to these procedures.
3. Allocate extended data segments using the SEGMENT_ALLOCATE64_ procedure.
4. Define a pool on the segment using the POOL64_DEFINE_ procedure.
5. Allocate buffers from the pool boundaries. See the FILE_AWAITIO64_ procedure for an
example.
On non-NSAA systems, reads and writes larger than 4KB on key-sequenced files may be
performed directly from or into the application’s buffer.
Disk File Considerations
• Large data transfers
For FILE_WRITEUPDATE64_ only, large data transfers (more than 4096 bytes), can be enabled
by using SETMODE function 141. See Table 44 (page 1319).
• Random processing and FILE_WRITEUPDATE64_
For key-sequenced, relative, and entry-sequenced files, random processing implies that a
designated record must exist. This means that positioning for FILE_WRITEUPDATE64_ 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 FILE_WRITEUPDATE64_ is rejected with file-system error
11 (record does not exist).
• File is locked
If a call to FILE_WRITEUPDATE64_ is made and the file is locked through a file number other
than that supplied in the call, the call is rejected with file-system error 73 (file is locked).
• When the just-read record is updated
A call to FILE_WRITEUPDATE64_ following a call to FILE_READ64_, without intermediate
positioning, updates the record just read.
• Unstructured files
Unstructured disk file: transferring data
If the FILE_WRITEUPDATE64_ is to an unstructured disk file, data is transferred to the
record location specified by the current-record pointer.
◦
◦ File pointers after a successful FILE_WRITEUPDATE64_
After a successful FILE_WRITEUPDATE64_ to an unstructured file, the current-record and
next-record pointers are unchanged.
◦ The number of bytes written
If the unstructured file is created with the odd unstructured attribute (also known as
ODDUNSTR) set, the number of bytes written is exactly the number specified in
write-count. If the odd unstructured attribute is not set when the file is created, the
value of write-count is rounded up to an even value before FILE_WRITEUPDATE64_
is executed.
540 Guardian Procedure Calls (F)