Fast/Reload procedure handling

From m204wiki
Revision as of 01:26, 19 February 2016 by JAL (talk | contribs) (add category)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to navigation Jump to search

The UAI and LAI statements support the reorganization of procedures and procedure aliases. Procedures and aliases present in the TAPEI input data set for a Fast/Reload run are loaded as is by LAI by default. The UAI unload and LAI reload preserve their associations.

If procedure or alias names clash with names in the target file, the reload stops. If you want the unloaded procedures and aliases not to be reloaded, you specify the NOPROCS option of the LAI statement.

The procedure reloading feature likely entails some environmental adjustments (especially more storage buffers), and it offers an automatic tuning of the target file's procedure dictionary settings.

Preparing the environment

When you are LAI-reloading a file that has procedures, take into consideration the following recommendations:

  • More CSECTs are required than in the typical BATCH204 module.
  • Instead of maintaining separate BATCH204 and ONLINE modules, combine their CSECTs into a single ONLINE module, and use that for Fast/Reload.
  • Ensure sufficient disk buffers to minimize the elapsed time for the reload:

    If your storage capacity is plentiful, 10,000 to 15,000 buffers should ensure maximum throughput.

    • Set the Model 204 parameter MINBUF to at least 10000.
    • Set the LDBKMWND parameter to at least 30.

    Otherwise, if storage capacity is a concern, set the MAXBUF parameter to the number of pages in the unloaded procedure dictionary, plus some overhead:

    MAXBUF = PDpgs + LDKBMWND + 50 + min(10, nprocs) * avgProcpgs

    Where:

    • PDpgs (total number of pages in the unloaded procedure dictionary), nprocs (number of unloaded procedures), and avgProcpgs (average procedure length in pages) are available from the FSTATS statistics in the UAI report data set.
    • The LDKBMWND parameter is set to at least 30.

Setting PDSIZE

Procedure loading includes an automatic PDSIZE-setting feature. This auto-sizing is weighted toward creating a new procedure dictionary whose total size is nearly the same as the old, but which typically is a product of a larger PDSIZE and fewer procedure dictionary chunks (blocks of contiguous pages) than the old.

The sizing feature is invoked only when you are loading into a file that has no procedures, the file's PDSIZE value is the default size (3), and the number of pages of UAI unloaded procedures and aliases is greater than the default PDSIZE.

When the preceding conditions exist, the PDSIZE of the reload target file is set to one of the following:

  • The number of pages in the unloaded file's procedure dictionary, if that number of pages is less than or equal to 255.
  • The smallest number less than 255 that will yield the smallest number of page chunks, if the number of pages in the unloaded procedure dictionary exceeds 255.

    To arrive at these smallest numbers, (the rounded-up, integral result of) the number of pages in the unloaded procedure dictionary is divided by the initial number of chunks in the new dictionary. This chunks value is the quotient of the old page count and 255, rounded up to the next integral value.

For example, for an unloaded dictionary that has 800 pages, the new chunk count would be 4 (800/255, then rounded up), and the new PDSIZE would be 200 (800/4). For an unloaded dictionary that has 1332 pages, the new chunk count would be 6, and the new PDSIZE would be 222.

The target file's existing value for PDSIZE is used in any of the following cases:

  • A procedure dictionary already exists.
  • PDSIZE is already set to a value other than 3.
  • The unloaded procedures and aliases used no more than 3 pages.

Note: The PDSIZE optimization feature is only activated if the Fast/Unload user has the FSTATS feature enabled. If FSTATS is not enabled, necessary optimization information is not written to the unloaded data set.

See also