WEB WORK, SASWORK, MULTWORK, and NOMULT Statements
This article discusses the role of WORK, SASWORK, MULTWORK, and NOMULT statements in the WEB analyzer, and lists the procedure for changing the number of WORK files.
micsrm140
This article discusses the role of WORK, SASWORK, MULTWORK, and NOMULT statements in the WEB analyzer, and lists the procedure for changing the number of WORK files.
Contents
WORK
(Optional) The Work statement enables sites that experience 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 forSa use during the daily and incremental update job step. The maximum number of WORK files you can allocate varies by product. These additional work files are used along 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 in the following example:
WORK n data_set_allocation_parameters
n
The number of WORK data sets
Default:
One (1)Maximum:
Nine (9).data_set_allocation_parameters
One or more data set allocation parameters
Example:
STORCLAS or SPACE separated by spaces.You can also specify the WORK parameter in the following way:
WORK n XXX pppp ssss
n
The number of WORK data sets
XXX
TRK or CYL
pppp
The primary allocation
ssss
The secondary allocation
When allocating any number of SAS WORK data sets, be aware that one extra SAS WORK data set is automatically allocated to facilitate sorting. For example, if you allocate six SAS WORK data sets, you 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 fails 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 that are 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
The number of WORK data sets.
STORCLAS
Specifies a storage class for a new data set.
Limits:
8 charactersSPACE
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.
RLSE
Specifies that free-space should be released when the data set is closed.
Example 2:
WORK n XXX pppp ssss
n
The number of WORK data sets.
XXX
TRK or CYL.
pppp
The primary allocation.
ssss
The 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 charactersUNIT
Specifies the generic unit for a new data set.
Limits:
8 charactersSPACE
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, 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 resembles this 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, you could code one of these:
- 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. 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 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 space allocation information as shown in the following exampe:WORK 5then 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), increase the space allocation in the WORKSPACE parameter, or 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), decrease the space allocation in the WORKSPACE parameter, or 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 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 100orWORK 5 SPACE=(TRK,(200,100)) STORCLAS=MICSTEMPchange the values to meet your needs.If you need more work space, 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
When internal step restart is active, (RESTART YES), then, when you change WORK and run cccPGEN, changes take effect immediately. There is no need to run JCLGENU.
SASWORK
(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 can 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
The primary allocation
ssss
The 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 charactersSPACE
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
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 WORK files to ONLY the files listed after the MULTWORK keyword.
MULTWORK fff fff ... fff
fff
The 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
The unique three character identifier
If you need multiple lines, repeat the NOMULT on the continuation line.
The default is MULTWORK AGL RFL ERL SAL AMS APS WPR SAF SIF MIJ SRV if neither MULTWORK nor NOMULT parameters are specified.
The following files are eligible for multiple WORK support:
- AGL HTTP Agent Log File
- ERL HTTP Error Messages Log File
- RFL HTTP Referer Log File
- SAL HTTP Server Access Log File
- AMS HTTP Access Method Summary File
- APS HTTP Access Path Summary File
- WPR HTTP Performance File
- SAF WAS Server Activity File
- SIF WAS Server Interval File
- MIJ J2EE Method Interval File
- SRV Servlet Interval File o WRA Web Request Activity File
- WCB Web CPU Usage Breakdown File
- WUD Web User Data File
Change the Number of Work Files
To change the number of work files used in the VTS component processing DAY096, follow the checklist provided below for each unit:
- Update the WORK statement in prefix.MICS.PARMS(cccOPS), where (ccc) is the component identifier, to specify the number of work data sets required. Below is an example:WORK n STORCLAS=MICSTEMP SPACE=(XXX,(pppp,ssss))Where:nThe number of WORK data sets.STORCLASSpecifies a storage class for a new data set. The name can have up to eight characters.SPACESpecifies how much disk space to provide for a new data set being allocated.XXXTRK or CYL.ppppThe primary allocation.ssssThe secondary allocation.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.
- If this is the first time you are implementing multiple work files for this product, then continue with Step 2. If you are just changing the number currently in use, or simply the space definitions, then proceed to Step 3 of this checklist.Browse sharedprefix.MICS.PROTOLIB(DYcccnnn) and sharedprefix.MICS.PROTOLIB(cccINCR), where (nnn) is the job step number and (ccc) is the product ID for this product, checking for the presence of the WORK symbolic on the EXEC statement to determine if you have previously modified this product to increase the allocation of SAS WORK space.
- If you find a WORK symbolic, simply divide the primary and secondary allocation values from the WORK symbolic by the number of work files specified above (value of n on the WORK statement coded in Step 1).Coding the resulting values will yield the same aggregate space allocation you have been using with a single WORK file. To double your available WORK space, carry out the division, double the results and use the values in the WORK definition above.
- If you did not find a WORK symbolic in PROTOLIB, examine prefix.MICS.PARMS(JCLDEF) for eachMICSunit containing this product. Find the WORKSPACE keyword. The space allocation specified is used for a single SAS WORK file. Perform the same division as described in the previous paragraph to determine the quantity that will yield equivalent total allocation with multiple WORK files. Then adjust the values upward to meet your needs.
- Submit the job in prefix.MICS.CNTL(cccPGEN).
- If you specified RESTART YES in the product's cccOPS, you are done. Otherwise, you must do Steps 5, 6, and 7.
- Edit prefix.MICS.PARMS(JCLGENU) so that it contains a single line that reads:DAILYOr, if incremental update is enabled for this product in this unit database, specify:DAILY INCRcccWhere ccc is the product ID.
- Submit the job in prefix.MICS.CNTL(JCLGENU). Ensure that there are no error messages in MICSLOG or SYSTSPRT, that the MICSLOG contains the normal termination message, BAS10999I, and that the job completes with a condition code of zero.
- The following operational job(s) have changed:- DAILY- INCRccc (if incremental update is enabled)If your site has implemented the operationalMICSprocesses in a scheduling product, the JCL might have to be refreshed in that product. See the scheduling product's administrator for the exact processes involved in updating that product's representation of theMICSjobs.