File format
FASTPAM will only process PAM files with BLKCTRL=NO/DATA and BLKSIZE=(STD,2n), where n=1,2,3...8. Files which are not of this format must first be converted. A block control field is added to files with BLKCTRL=DATA.
FASTPAM authorization
In order to receive resident memory via FASTPAM calls, the user must be authorized in the user catalog. To do so you must call the SHOW-USER-ATTRIBUTES command and there enter the value *EXCLUSIVE in the DMS-TUNING-RESOURCES field. Users who do not have such authorization may also use the FASTPAM access method, but no resident areas are maintained. FASTPAM behaves like UPAM in such cases: only a small, non-resident part of the I/O paths is created by the system; the area of the parameter lists and the I/O area pool are not fixed. In other words, the paths must be recreated, and user areas must be validated and fixed for each I/O, as a result of which performance gains typically achieved with FASTPAM are lost.
If no memory can be made resident, FASTPAM behaves as if the required FASTPAM authorization were missing. As a result a performance level equivalent to or better than that of UPAM is being offered.
Making memory areas resident
One of the primary purposes of FASTPAM is to enable rapid file access. This is done by making the required system environment available in resident memory before the first file is accessed. In order to do this, the memory areas containing the user parameter lists and the I/O areas (both of which must be supplied by the user) are made memory-resident by the “FASTPAM page fixing” mechanism.
This is essentially the same procedure that is performed by PPAM for the I/O area for every I/O operation when other access methods are used. The only difference with the other access methods is that the I/O area is released on completion of each I/O operation.
With FASTPAM, the user can define how long the parameter lists and the I/O areas are fixed (with ENABLE/DISABLE ENVIRONMENT and ENABLE/DISABLE IOAREA POOL). You can use them during that period. Validation is only required once at the beginning, since fixed areas cannot be released.
The ENABLE ENVIRONMENT function is also used to request the system memory that is required for I/O operations (once for each I/O operation that can be concurrently executed). A major part of this memory, i.e. the area used by IOCTRL, is always resident. This is also true for the other access methods, but the area is reallocated for each I/O and is not permanently reserved.
The rest of the system memory consists of a FASTPAM work area, which primarily contains the parameter list to call PPAM.
The fixing of memory areas as described above is performed only if the user ID has the required FASTPAM authorization.
In this case and if the appropriate memory areas are fixed, the resulting environment or I/O area pool is said to be “resident”.
A “resident environment” thus refers to:
prevalidated parameter lists in resident memory
system memory that is reserved in advance
a resident FASTPAM work area.
Similarly, a “resident I/O area pool” implies:
prevalidated I/O areas in resident memory.
Prerequisites for resident FASTPAM areas
The user has specified the appropriate parameters (macro FPAMSRV, FCT=*ENAENV/*ENAIPO, operand RES=YES).
The user has the required FASTPAM authorization.
No data spaces are being used.
An adequate amount of main memory is available.
A sufficient number of resident pages were allocated on calling the program (command START-PROGRAM/LOAD-PROGRAM, operand RESIDENT-PAGES). When resident pages are allocated in the program call, the maximum value defined in the user catalog and the system-global limit for resident memory pages must not be exceeded.