HSM WORK, SASWORK, MULTWORK, and NOMULT Statements

This article discusses the role of WORK, SASWORK, MULTWORK, and NOMULT statements in the HSM subsection of the VCA analyzer.
micsrm140
WORK
This statement is optional. It enables sites experiencing either SAS WORK space allocation problems or out of work space conditions during DAYnnn or INCRnnn (where nnn is the job step number), daily or incremental update processing, to allocate multiple WORK files.
You can allocate multiple WORK files for use during the daily and/or incremental update job step. The maximum number of WORK files you can allocate varies by product. These additional work files are used in conjunction with the single work data set allocated by default using the JCLDEF parameters WORKUNIT and WORKSPACE.
Because the individual space allocation requirement for each WORK file is typically much smaller, it is more likely to be satisfied.
To take advantage of multiple WORK files support, edit prefix.MICS.PARMS(cccOPS) and insert a WORK statement as shown below:
WORK n data_set_allocation_parameters
n
number of WORK data sets
Note:
The default is three (3). The maximum is nine (9).
data_set_allocation_parameters is one or more data set allocation parameters (for example, STORCLAS or SPACE) separated by spaces.
You can also specify the WORK parameter as the following:
WORK n XXX pppp ssss
n
number of WORK data sets
XXX
TRK or CYL
pppp
primary allocation
ssss
secondary allocation
Note:
When allocating any number of SAS WORK data sets, be aware that one additional SAS WORK data set is automatically allocated to facilitate sorting. For example, if you allocate six SAS WORK data sets, you will actually get seven.
If you omit the data_set_allocation_parameters or the WORK parameter, the work data sets are allocated according to the values you specified for the WORKUNIT and WORKSPACE parameters in prefix.MICS.PARMS(JCLDEF). Use the data_set_allocation_parameters to override this default, either to alter the space allocation or to use System Managed Storage (SMS) parameters to control data set placement and characteristics.
If you allocate insufficient space for the WORK data sets, DAYnnn and/or INCRnnn processing will fail and can only be restarted from the beginning.
If internal step restart is active, you can override the WORK data set allocation parameters at execution-time using the //PARMOVRD facility. For more information about execution-time override of dynamic data set allocation parameters, see Dynamic Allocation Parameter Overrides (//PARMOVRD).
Specify data set allocation parameters, separated by blanks, according to SAS LIBNAME statement syntax. If you need multiple lines, repeat the WORK keyword on the continuation line.
WORK accepts the engine/host options documented in the SAS Companion for the z/OS environment, including STORCLAS, UNIT, SPACE, BLKSIZE, DATACLAS, MGMTCLAS, and VOLSER.
Do not specify the DISP parameter.
Example 1:
WORK n STORCLAS=MICSTEMP SPACE=(XXX,(pppp,ssss),RLSE)
n
number of WORK data sets
STORCLAS
specifies a storage class for a new data set
Limits:
8 characters
SPACE
specifies how much disk space to provide for a new data set being allocated
XXX
TRK or CYL
pppp
primary allocation
ssss
secondary allocation
RLSE
specifies that free-space should be released when the data set is closed
Example 2:
WORK n XXX pppp ssss
n
number of WORK data sets
XXX
TRK or CYL.
pppp
primary allocation
ssss
secondary allocation
Example 3 (multiple lines):
WORK n STORCLAS=MICSTEMP UNIT=SYSDA WORK SPACE=(xxxx,(pppp,ssss),,,ROUND))
n
the number of WORK data sets
STORCLAS
specifies a storage class for a new data set
Limits:
8 characters
UNIT
specifies the generic unit for a new data set
Limits:
8 characters
SPACE
specifies how much disk space to provide for a new data set being allocated
XXX
TRK or CYL
pppp
the primary allocation
ssss
the secondary allocation
Note:
Since there is some performance impact when using multiple WORK files, you should specify the minimum number of WORK data sets to meet your work space requirements. As a start, try incrementing the number gradually beginning from the default.
WORK Considerations
How Much Space Should You Allocate?
First Time Implementation of Multiple Work Files
If this is the first time you are implementing multiple work files for this product in this unit, review
prefix.MICS.PARMS(JCLDEF)
and find the WORKSPACE parameter. It will resemble the following sample statement:
WORKSPACE TRK 500 250
The value shows the current SAS WORK space allocation for the unit as a single data set. It also serves as the default value used in the unit's DAYnnn daily update (and/or INCRnnn incremental update) step unless you provide a WORK parameter.
To achieve the equivalent work space allocation of WORKSPACE TRK 500 250 using multiple WORK data sets that will collectively share the work space requirements of the daily and/or incremental update step, code one of the following:
WORK 2 SPACE=(TRK,(250,125)) WORK 5 SPACE=(TRK,(100,50))
To determine the total work space, multiply the number of WORK files (n) by the primary (pppp) and secondary (ssss) values specified.
Note:
To simplify the example, only the SPACE parameter is shown above. You can follow either with data set allocation parameters like UNIT or STORCLAS as required for your site.
Adjusting Allocation for Existing Multiple WORK Files
If you have previously implemented multiple WORK file support for this product in this unit, and you want to change either the number of WORK files or the space allocations, examine
prefix.MICS.PARMS(cccOPS)
and find the existing WORK statement.
  • If the existing WORK statement only specifies the number of WORK files but does not contain the following space allocation information
    WORK 5
    then each of the multiple WORK files is allocated using the values from the WORKSPACE parameter of
    prefix.MICS.PARMS(JCLDEF)
    , as described earlier under First Time Implementation of Multiple Work Files. To increase workspace, you can increase the number of WORK files (for example, change WORK 5 to WORK 6,7,8, or 9), or increase the space allocation in the WORKSPACE parameter. Alternativelly, you can do both.
    To decrease workspace, you can decrease the number of WORK files (for example, change WORK 5 to WORK 4,3,2, or 1), or decrease the space allocation in the WORKSPACE parameter. Alternativelly, you can do both.
    You can also specify the multiple WORK file space allocation by adding the space allocation values directly to the WORK statement. This removes the link to the
    prefix.MICS.PARMS(JCLDEF)
    WORKSPACE parameter for multiple WORK file space allocation. This method is recommended as it serves to clearly document, in one place, how multiple WORK files are allocated.
  • If the existing WORK statement does include space allocation as shown in the following examples
    WORK 5 TRK 200 100
    or
    WORK 5 SPACE=(TRK,(200,100)) STORCLAS=MICSTEMP
    simply change the values to meet your needs. If you need more workspace, you can increase the number of WORK files (for example, change WORK 5 to WORK 6,7,8, or 9), increase the space allocation (for example, change TRK 200 100 to TRK 250 120), or do both.
    To decrease work space, you can decrease the number of WORK files (for example, change WORK 5 to WORK 4,3,2, or 1), decrease the space allocation (for example, change TRK 200 100 to TRK 150 80), or do both.
If internal step restart is NOT active (RESTART NO) and you change the WORK parameter, you must:
  • Run cccPGEN
  • Run JCLGENU for DAILY (to regenerate DAILY) and, if incremental update is enabled, INCRccc
SASWORK
This statement is optional.
The WORK DD statement in the
MICS
procedures allocates a temporary data set where SAS keeps its temporary data files and other items that SAS uses during processing of the current job.
By default, the space allocated is defined in the member prefix.MICS.PARMS(JCLDEF) with the WORKSPACE and WORKUNIT parameters, then generated into all the JCL procedures for a given unit.
With the SASWORK statement you have the option to override this unit-wide definition to specify the space allocation individually for the current step.
The format of the SASWORK statement is:
SASWORK data_set_allocation_parameters
data_set_allocation_parameters
one or more data set allocation parameters
Example:
STORCLAS or SPACE (separated by spaces)
You can also specify the SASWORK parameter as the following:
SASWORK XXX pppp ssss
XXX
TRK or CYL
pppp
primary allocation
ssss
secondary allocation
If you omit the data_set_allocation_parameters or the SASWORK statement, the WORK data set is allocated according to the values you specified for the WORKUNIT and WORKSPACE parameters in prefix.MICS.PARMS(JCLDEF). Use the data_set_allocation_parameters to override this default, either to alter the space allocation or to use System Managed Storage (SMS) parameters to control data set placement and characteristics.
Specify data set allocation parameters, separated by blanks, according to SAS LIBNAME statement syntax. If you need multiple lines, repeat the SASWORK keyword on the continuation line.
Example:
SASWORK STORCLAS=MICSTEMP SPACE=(XXX,(pppp,ssss))
STORCLAS
Specifies a storage class for a new data set.
Limits:
8 characters
SPACE
Specifies how much disk space to provide for a new data set being allocated.
XXX
TRK or CYL.
pppp
primary allocation
ssss
secondary allocation
If you change the SASWORK parameter, you must:
  • Run cccPGEN
  • Run JCLGENU for DAILY (to regenerate DAILY) and, if incremental update is enabled, INCRccc
MULTWORK and NOMULT
Multiple work files usage impacts performance. This product provides the following optional parameters so you can restrict multiple work files usage only to files with excessive space requirements.
Note:
You can only use one of these optional parameters with the WORK statement, NOT both.
MULTWORK
Restricts the use of multiple WORKfiles to ONLY those listed after the MULTWORK keyword.
MULTWORK fff fff ... fff
fff
unique three character identifier
If you need multiple lines, repeat the MULTWORK on the continuation line.
NOMULT
Forces the use of multiple WORK files for all files EXCEPT specified after the NOMULT keyword.
NOMULT fff fff ... fff
fff
unique three character identifier
If you need multiple lines, repeat the NOMULT on the continuation line.
The default is as follows if neither MULTWORK or NOMULT parameters are specified:
MULTWORK BAC BAX MIG MIX VOL VOX
The following files are eligible for multiple WORK support:
HSM DFHSM Inventory Primary Information Area
MIG Migrated Data File MIX Internal Work File Parallel to MIG File TAP Tape Planning File TAX Internal Work File Parallel to TAP File VOL DASD Volume Planning File VOX Internal Work File Parallel to VOL File
HSB DFHSM Inventory Backup Information Area
BAC BACKUP Data File BAX Internal Work File Parallel to BAC File