Previous Topic: Sample Control StreamNext Topic: Constraint Specifications


Constraint Merging

The sample control stream in the previous section shows that cluster PAYROLL.MASTER.FILE and program F28945 will both be dynamically buffered because they are contained within an INCLUDE mode control group (assuming that no other EXCLUDE level matches, which takes precedence). When cluster PAYROLL.MASTER.FILE is OPENed, CA Hyper-Buf looks at the OPEN options (random, sequential, and so forth) and cluster information (index set records, CI sizes, device type, and so forth). Then CA Hyper-Buf determines an optimum number of buffers that does not exceed a total of 40960 bytes of virtual storage, has no more than eight data buffers, and has at least three index buffers.

These numbers are determined by simulating the actual checking done by CA Hyper-Buf.

  1. The composite constraint table is initialized with the system defaults: MAXBUFND=20, MAXBUFSP=81920, and so forth, including all of the system default values that are specified.
  2. The CLUSTER selectors are compared against the cluster currently being opened. Cluster PAYROLL.MASTER.FILE matches a cluster specification exactly, and the corresponding constraints are merged into the composite table. The composite table now contains MAXBUFND=8 (overlaid) and MAXBUFSP=40960 (overlaid), in addition to the original default values.

    Notice that the cluster does not match on the generic PAY+ level selector. At each level, CA Hyper-Buf chooses the selector that best matches the parameter.

  3. CA Hyper-Buf compares the job selectors, and any matching entry constraints are merged into the composite table.
  4. CA Hyper-Buf compares the program level selectors, and any matching entry constraints are merged into the composite table. Finally, program/ddname selectors are examined for matches, and the constraints are merged.

In this example, the maximum allowable number of index buffers is not specified on any matching level selector; only the minimum allowable. Since there is no specification made for the maximum index buffers, the system default value of STRNO + (number of index set records) is put into the composite table. Moreover, the cluster specifies no other minimum values, so all of the system default minimums are still in effect.

When any VSAM file is opened, each of the instance parameters (SMS class, cluster name, job name, program name, program/ddname) is compared against the corresponding LEVEL selectors. If a match is found, the constraints associated with the matching LEVEL selector are merged into a composite constraint table for this OPEN.

This merging of constraints is necessary because JOB F28945 may open cluster PAYROLL.MASTER.FILE, and both of these LEVEL selectors matches, and each level has different constraints. The merge procedure sets MAXBUFSP=32768 (overlaid), MAXBUFND=8, and MAXBUFNI=6 for this OPEN.

If a matching DD entry is encountered, the composite constraint table is again modified. If the cluster PAYROLL.MASTER.FILE is on the MSTRIN DD card, MAXBUFSP is overlaid with 60K. The resulting composite constraint table is: all minimum values are the same as system defaults (except MINBUFNI, which is 3) and the maximums are MAXBUFSP=61440 and MAXBUFND=8.

After all LEVEL selectors are searched and matching LEVEL constraints are merged, the resulting composite constraint table governs the selection of buffers.