Previous Topic: 7.2.1.8 VERIFY Statement

Next Topic: 7.2.1.9.1 Change the Number of Work Files

7.2.1.9 WORK, MULTWORK, and NOMULT Statements



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

where n is the 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

where:

  n    is the number of WORK data sets
  XXX  is TRK or CYL
  pppp is the primary allocation
  ssss is the 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.

Note:  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.

Note:  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 the PIOM, section 2.3.6.

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.

Important!  Do not specify the DISP parameter.

Example 1:

WORK n STORCLAS=MICSTEMP SPACE=(XXX,(pppp,ssss),RLSE)

where:

  n        - is the number of WORK data sets.
  STORCLAS - specifies a storage class for a new data set.
             The name can have up to 8 characters.
  SPACE    - specifies how much disk space to provide for
             a new data set being allocated.
  XXX      - is TRK or CYL.
  pppp     - is the primary allocation.
  ssss     - is the secondary allocation.
  RLSE     - specifies that free-space should be released
             when the data set is closed.

Example 2:

WORK n XXX pppp ssss

where:

  n        - is the number of WORK data sets.
  XXX      - is TRK or CYL.
  pppp     - is the primary allocation.
  ssss     - is the secondary allocation.

Example 3 (multiple lines):

WORK n STORCLAS=MICSTEMP UNIT=SYSDA
WORK   SPACE=(xxxx,(pppp,ssss),,,ROUND))

where:

  n        - is the number of WORK data sets.
  STORCLAS - specifies a storage class for a new data set.
             The name can have up to eight characters.
  UNIT     - specifies the generic unit for a new data set.
             The name can have up to eight characters.
  SPACE    - specifies how much disk space to provide for
             a new data set being allocated.
  XXX      - is TRK or CYL.
  pppp     - is the primary allocation.
  ssss     - is 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?

o  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 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
   either 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 above.  You can follow either with data set
   allocation parameters like UNIT or STORCLAS as required
   for your site.

o  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 space
      allocation information as shown below:

      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), 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 elect to explicitly specify the multiple
      WORK file space allocation by adding the space
      allocation values directly to the WORK statement.  This
      will remove 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 examples below:

      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 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.

Note:  If internal step restart is NOT active (RESTART NO)
and you change the WORK parameter, you must:

o  Run cccPGEN
o  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
-------

This statement is optional.

The WORK DD statement in the CA 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

where 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 SASWORK parameter as the following:

SASWORK XXX pppp ssss

where:

  XXX  is TRK or CYL
  pppp is the primary allocation
  ssss is 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))

where:

  STORCLAS - specifies a storage class for a new data set.
             The name can have up to 8 characters.
  SPACE    - specifies how much disk space to provide for
             a new data set being allocated.
  XXX      - is TRK or CYL.
  pppp     - is the primary allocation.
  ssss     - is the secondary allocation.


Note:  If you change the SASWORK parameter, you must:

o  Run cccPGEN
o  Run JCLGENU for DAILY (to regenerate DAILY) and, if
   incremental update is enabled, INCRccc

MULTWORK|NOMULT fff fff ... fff
-------------------------------

Since multiple work files usage impacts performance, this
product provides these optional parameters so you can
restrict multiple work files usage to only those files having
excessive space requirements.

Note:  You can only use one of these optional parameters with
the WORK statement, NOT both.

The MULTWORK parameter restricts the use of multiple WORK
files to ONLY those listed after the MULTWORK keyword.

MULTWORK fff fff ... fff

where fff is the unique three character identifier

If you need multiple lines, repeat the MULTWORK on the
continuation line.

The NOMULT parameter forces the use of multiple WORK files
for all files EXCEPT those specified after the NOMULT
keyword.

NOMULT fff fff ... fff

where fff is the unique three character identifier

If you need multiple lines, repeat the NOMULT on the
continuation line.




The default is the following if neither MULTWORK nor NOMULT
parameters is specified:

MULTWORK _VT _VU ASC BPG CDI CDT CHC CMU CPV CT1 NDT NTU
         QCT SGP SPP STP VXT VXU XDV XLF XSS LXP

NOMULT   ACF DCF LCP LPR PCF SCF SCX STA VXF XDS XSF XST
         XTW


The implementation of internal restart support in this
component requires the creation of a number of temporary
files not defined in sharedprefix.MICS.GENLIB(VMCGENIN).

Files eligible for multiple WORK support are listed below:

Note:  Files marked with * are not enabled to use multiple
WORK files for performance reasons.

  _VT    VMX User Transaction Event Data File
  _VU    VMX User Activity Event Data File
* ACF    VMX CPVOL Configuration Data File
  ASC    VMX Shared Address Space Work File
  BPG    VMX Block Paging Data File
  CDI    VMX DASD Cache Activity File
  CDT    WRK Intermediate Cache Activity File
  CHC    VMX Channel Path Contention File
  CMU    VMC User Resource Accounting File
  CPV    VMX CP Owned Volume Data File
  CT1    WRK Intermediate Cache Activity File
* DCF    VMX Device Configuration File
* LCP    VMX Logical Processor Activity File
* LPR    VMX Logical Partition Activity File
  NTU    VMC Network Terminal Usage File
  NDT    VMC Network Data Transmission File
* PCF    VMX Processor Configuration File
  QCT    WRK Intermediate Performance Data File
* SCF    VMX System Configuration File
* SCX    VMX Scheduler Parameters File
  SGP    VMX System Global Data File
  SPP    VMX System Processor Data File
* STA    WRK Intermediate Status Work File
  STP    VMX System Timer Pop File
* VXF    VMX User Data Configuration File
  VXT    VMX User Transaction Sample Data File
  VXU    VMX User Activity Sample Data File
* XDS    VMX Device SEEKs Data File
  XDV    VMX Device Activity File
  XLF    WRK Intermediate User Activity File
* XSF    VMX Shared Storage Configuration
  XSS    VMX Shared Storage Management File
* XST    WRK Intermediate Shared Storage File
* XTW    WRK Intermediate Shared Storage File

The following section discusses changing the WORK option:

    1 - Change the Number of Work Files