Guardian Procedure Calls Reference Manual

The address was invalid; for example, the address was in an extended data segment,
but either the segment ID was not allocated, the segment ID was an invalid segment
number, or there was a bounds error on the area.
The total message size was too large (over 32 KB).
Increased file limits for key-sequenced files
The CHECKPOINTMANYX procedure can checkpoint the file synchronization blocks of file
numbers passed to it in the descriptors parameter. In H06.28/J06.17 RVUs with specific SPRs
and later RVUs, the limits of the following file attributes for format 2 key-sequenced files have
been increased, which can result in file synchronization blocks with larger maximum sizes.
(For a list of the required H06.28/J06.17 SPRs, see SPR Requirements for Increased Enscribe
Limits for the H06.28/J06.17 Release (page 31).)
The file synchronization blocks support synchronization IDs for a maximum of 127
partitions of an enhanced key-sequenced file; earlier RVUs only support a maximum of
64 partitions.
The maximum key size for format 2 legacy key-sequenced files and enhanced
key-sequenced files is 2048 bytes, and the current key is part of the file synchronization
block; earlier RVUs only support a maximum key length of 255 bytes.
As a result of these increased limits, more memory may be required to checkpoint file
synchronization blocks, which can potentially reduce the number of file opens that can be
checkpointed in a single CHECKPOINTMANYX call and cause “message too large” errors
to occur at lower thresholds than previously.
Example
INT status;
INT stack^origin;
INT junk;
STRING .EXT buffer[0:511];
INT .EXT descr[0:10];
descr[0] := 2; ! count of items
! note the following is improper syntax;
! used for illustration only
descr[1:2] := -1D; ! always this for file items
descr[3] := fnum^a; ! file number
descr[4:5] := junk; ! unused words for file items
descr[6:7] := 512D; ! length in bytes
descr[8] := -1; ! indicates stack
descr[9:10] := @buffer; ! data item -- extended address
status := CHECKPOINTMANYX( stk^origin , descr);
154 Guardian Procedure Calls (C)