Previous Topic: 7.3.1 DB2 Processing Options (DB2OPS)

Next Topic: 7.3.1.1.1 Change the Number of WORK Files

7.3.1.1 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 thirty five (35).

        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 as follows if neither MULTWORK nor NOMULT
parameters are specified:

MULTWORK DBU DDU DPP DSU DPX

The following files are eligible for multiple WORK support:

DB2   DB2 Information Area

  DDU   DB2 User DDF Activity File
  DPP   DB2 Package/DBRM Activity File
  DSU   DB2 User Activity File
  DPX   DB2 Package/DBRM Activity Work File

DBP   DB2 Buffer Pool Area

  DBU   DB2 User Buffer Pool Activity


The following section discusses changing the WORK option:

    1 - Change the Number of Work Files