Previous Topic: 2.3.3.3.5 OS Job Names

Next Topic: 2.3.3.3.7 OS Job Attributes

2.3.3.3.6 OS Step Names

Jobs generated with JCLGEN have descriptive job step names.
In the CA MICS installation jobs, the job step names can be
changed without impact on CA MICS operation. This is NOT true
of the CA MICS operational jobs (i.e., DAILY, INCRccc,
WEEKLY, MONTHLY, YEARLY, BACKUP, RESTORE, RSTATUS, and
SCHEDULE).  During the operational jobs, the current job step
name is compared with the step which is acceptable to run,
based on the status of the database checkpoint file.

CA MICS operational job step names have a strict naming
convention. Having operational jobs that adhere to this
convention allows the CA MICS Product Support representatives
to accurately and quickly isolate operational problems. This
helps us provide you with more timely problem resolution
should operational job problems occur. Changing the job step
names of CA MICS operational jobs always interrupts this
initial problem isolation, and usually lengthens problem
resolution times.

You may not be able to take full advantage of features
provided by CA MICS if you modify the CA MICS operational job
step names. CA MICS automatic job submission facilities in
the batch SCHEDULE job and in the online Operational Status
and Tracking facility create processes that include a series
of CA MICS operational jobs. For example, a weekly process
would consist of a DAILY, WEEKLY, and BACKUP in a single job
stream. Job step names must be unique among all of the
operational jobs in order to use the automatic submission
facilities.

Changing operational job step names is a process that
involves more user modifications than any other tailoring
operation in CA MICS. A facility is provided to allow the
override of CA MICS operational job step names used in
checkpoint analysis. The step names must be manually
modified in all of the affected PROTOLIB members, and
overridden names must be mapped to standard names. This
mapping may change as new products are added to the database.

Because of the maintenance burden this will add, and because
modifying operational job step names usually lengthens
support interactions, WE HIGHLY RECOMMEND THAT BEFORE THE
EFFORT OF CHANGING JOB STEP NAMES IS BEGUN, YOU ATTEMPT TO
GET A WAIVER OF THE INSTALLATION JOB STEP NAME STANDARD.

If you find that you must change operational job step names,
follow these steps (which are explained in more detail in the
text that follows):

    MODIFYING PROTOLIB MEMBERS:

    o  Determine if you will be scheduling CA MICS through a
       vendor scheduling package or using a CA MICS provided
       facility.

    o  Identify the minimum number of job step names that
       must be changed.

    o  Identify the location of each job step name in
       members of sharedprefix.MICS.PROTOLIB.

    o  Prepare the PROTOLIB modifications.

    TRANSLATING STEP NAMES:

    o  Prepare the PROC FORMAT statements that comprise the
       $USTEP format. This format is called by operational
       job checkpoint processing to translate the actual
       (modified) job and step name of an operational job
       into the CA MICS standard job and step name.

    o  Prepare the _USRSTEP macro that performs the opposite
       translation; given a CA MICS standard operational job
       step name, return the actual (modified) job step name
       in which restart processing should occur.

    INSTALLING:

    o  Install the modifications, format, and macro.

    o  Keep complete written records of all modifications,
       and have them available for each call to the CA MICS
       Product Support group.


Here is a detailed description of the operational job step
name modification strategy.


MODIFYING PROTOLIB MEMBERS:

1.  Determine if you will be scheduling CA MICS through a
    vendor scheduling package or using a CA MICS provided
    facility.

    If you plan to use one of the CA MICS scheduling
    facilities, all operational job step names MUST be
    unique. If you use the same job step name, for example
    STEP1, in multiple CA MICS jobs, then you can NOT use the
    CA MICS batch SCHEDULE job or the Operational Status and
    Tracking SCHEDULE, DAILY, WEEKLY, MONTHLY, or YEARLY
    commands.

2.  Identify the minimum number of job step names that must
    be changed.

    The CA MICS operational jobs and their step names are
    listed in Chapter 4. Thoroughly examine that chapter for
    an understanding of the structure and job step naming
    conventions used by CA MICS.

    From the list of possible job step names, select the
    fewest number of names that must be changed. Fewer name
    changes mean fewer modifications and less effort.

3.  Identify the location of each job step name in members of
    sharedprefix.MICS.PROTOLIB.

    The PROTOLIB members that cause each operational job to
    be generated are named for the job:  DAILY, WEEKLY,
    MONTHLY, YEARLY, BACKUP, RESTORE, RSTATUS, and SCHEDULE.
    Note:  The INCRccc operational jobs are generated from
    the cccINCR protolib members.

    The operational update jobs (DAILY, INCRccc, WEEKLY,
    MONTHLY, and YEARLY) include other PROTOLIB members to
    complete their generation.  The names of these members
    vary according to the job step which the members
    prototype.

    For the DAILY, WEEKLY, MONTHLY, and YEARLY job steps that
    update CA MICS databases, the members have names of the
    form ttcccsss, where

       tt = DY for the DAILY job
            WK for the WEEKLY job
            MN for the MONTHLY job
            YR for the YEARLY job
      ccc = the product identifier, and
      sss = the product update step number

    The INCRccc jobs are in the cccINCR members and have step
    names of INCRnnn.

    The product identifiers (ccc) and update step numbers
    (nnn) for each CA MICS data integration product can be
    found in sharedprefix.MICS.GENLIB(COMPTDEF).

    An example of such a member is the CA MICS Batch and
    Operations (SMF) Analyzer. Its operational update step
    prototypes can be found in PROTOLIB members DYSMF030,
    SMFINCR, WKSMF030, MNSMF030, and YRSMF030.

    In addition, the DAILY, WEEKLY, and MONTHLY jobs have
    separate report step prototype members in PROTOLIB.
    These members are called:

        DYRPT400
        WKRPT400
        MNRPT400

    Finally, the DAILY, WEEKLY, MONTHLY, and YEARLY jobs have
    separate user step prototype members in PROTOLIB. These
    members are called:

        DYUSR500
        WKUSR500
        MNUSR500
        YRUSR500

4.  Prepare the PROTOLIB modifications.

    If you need to change step names, to conform to a
    standard, you would typically build modifications for all
    the members identified above.

    As an example, we will examine a single modification.
    The first step of the DAILY job is called DAYALL. Its
    prototype is in sharedprefix.MICS.PROTOLIB(DAILY). For
    this example, lets say that the DAYALL step is located on
    a line with sequence number 00041000. The contents of
    that line are:

    col 1                                              col 80
    |                                                       |
    //DAYALL EXEC &MICSNDB,SYSPARM=&SYSPARM          00041000

    To change the name of the step from DAYALL to STPDY000,
    build an IEBUPDTE input stream that replaces the line
    with the desired contents:

    col 1                                              col 80
    |                                                       |
    ./ CHANGE NAME=DAILY
    //STPDY000 EXEC &MICSNDB,SYSPARM=&SYSPARM        00041000

    Repeat this procedure for each step and member modified.
    Be sure to add user maintenance block comments to each
    member, and save the update in the modification staging
    library sharedprefix.MICS.LOCALMOD.CNTL.


TRANSLATING STEP NAMES:

5.  Prepare the $USTEP FORMAT.

    The $USTEP format is generated by every JCLGEN run in a
    unit database.  The source for this format is contained
    in prefix.MICS.USER.SOURCE(USTEP) for every unit
    database.

    For every unit database, enter the step translation
    information in prefix.MICS.USER.SOURCE(USTEP).

    The distributed USTEP member contains:


    PROC FORMAT LIBRARY=TMUOLIB.MICSFMTS PRINT;
         VALUE $USTEP (MIN=16 MAX=16 DEFAULT=16)
    /*                                                   */
    /* INSERT STEP MAPPING DEFINITIONS HERE.             */
    /* FORM OF DEFINITIONS IS:                           */
    /* 'NEW_JOB_NAME_STEP_NAME'='OLD_JOB_NAME_STEP_NAME' */
    /*                                                   */
    /* EXAMPLE:                                          */
    /*  IF JOB "DAILY" STEP "DAY020" HAD BEEN RENAMED TO */
    /*  IF JOB "YLIAD" STEP "Q64A31" THE DEFINITION IS:  */
    /*  'YLIAD   Q64A31  '='DAILY   DAY020  '            */
    /*                                                   */
    /* IT IS VERY IMPORTANT THAT THE JOB AND STEP NAME   */
    /* BE SPECIFIED EXACTLY AS SHOWN. THE JOB MUST BE    */
    /* THE FIRST EIGHT POSITIONS AND THE STEP MUST START */
    /* IN POSITION NINE.                                 */
    /*                                                   */
    /*  NEW_JOB NEW_STEP   OLD_JOB OLD_STEP              */
    /* '1234567812345678'='1234567812345678'             */
    /*                                                   */
    /*                                                   */
    /*  THE FOLLOWING ENTRY REPRESENTS AN ILLEGAL        */
    /*  COMBINATION OF JOB AND STEP NAME.  IT IS         */
    /*  INCLUDED TO ENSURE THAT THIS FORMAT, AS          */
    /*  GENERATED, WILL NOT BE EMPTY.  ADD ANY SITE      */
    /*  DEPENDENT ENTRIES AFTER THIS DUMMY ENTRY.        */
    /*                                                   */
    '+               ' = '+               '
    ; RUN;

    The translations must be added to this member. Since the
    CA MICS automatic job submission facilities generate a
    composite job stream of multiple CA MICS operational
    jobs, you must provide a mapping of all possible
    combinations of job and step names. The resulting SAS
    code in prefix.MICS.USER.SOURCE(USTEP), with comments
    removed, will look like this:

    PROC FORMAT LIBRARY=TMUOLIB.MICSFMTS PRINT;
         VALUE $USTEP (MIN=16 MAX=16 DEFAULT=16)
    'SYSOPDY STPDY000' = 'DAILY   DAYALL  '
    'SYSOPDY STPDY001' = 'DAILY   DAYSMF  '
    'SYSOPDY STPDY002' = 'DAILY   DAY010  '
    'SYSOPIU STPIU010' = 'INCRTSO INCR010 '
    'SYSOPDY STPDY003' = 'DAILY   DAY020  '
    'SYSOPIU STPIU020' = 'INCRRMF INCR020 '
    'SYSOPDY STPWK001' = 'WEEKLY  WEEK010 '
    'SYSOPDY STPWK002' = 'WEEKLY  WEEK020 '
    'SYSOPDY STPMN001' = 'MONTHLY MONTH010'
    'SYSOPDY STPMN002' = 'MONTHLY MONTH020'
    'SYSOPDY STPYR001' = 'YEARLY  YEAR010 '
    'SYSOPDT STPYR002' = 'YEARLY  YEAR020 '
          . . .        =       . . .
    'SYSOPWK STPWK001' = 'WEEKLY  WEEK010 '
    'SYSOPWK STPWK002' = 'WEEKLY  WEEK020 '
          . . .        =       . . .
    'SYSOPMN STPMN001' = 'MONTHLY MONTH010'
    'SYSOPMN STPMN002' = 'MONTHLY MONTH020'
          . . .        =       . . .
    'SYSOPYR STPYR001' = 'YEARLY  YEAR010 '
    'SYSOPYR STPYR002' = 'YEARLY  YEAR020 '

                  ... etc ...

    '+               ' = '+               '
    ; RUN;

    Note that each DAILY job step name is mapped with the
    DAILY, WEEKLY, MONTHLY, and YEARLY job name. WEEKLY,
    MONTHLY, and YEARLY job step names must also be mapped
    with the DAILY job name.

    If you have duplicate job step names in the CA MICS
    operational jobs, you will not be able to code the
    multiple job name mapping. For example, if the first
    step in the DAILY job is MICS001 and this is also the
    name of the first step in the WEEKLY job, you cannot
    correctly map the MICS001 step to DAYALL when the DAILY
    operational job is part of a composite job stream of
    DAILY, WEEKLY, and BACKUP (the WEEKLY process). For this
    reason, you will not be able to use the CA MICS SCHEDULE
    job or the Operational Status and Tracking SCHEDULE,
    DAILY, WEEKLY, MONTHLY, or YEARLY commands.

6.  Prepare the _USRSTEP macro.

    Remember that the function of the $USTEP macro was to
    translate an actual job/step name into the equivalent
    CA MICS standard job and step name. The _USRSTEP macro
    has the opposite function:  to find the name of the step
    in a failed operational job, which should be specified in
    a RESTART JCL control parameter. The step name found must
    be put into a data element called RESTEP.

    The macro could use any of several methods to reassign
    the new step name into the data element RESTEP. One
    method that is relatively reliable for a minimum effort
    is to use the $USTEP format to contain both directions of
    translation. For example, add to the USTEP member in the
    above example the opposite translation:

    PROC FORMAT LIBRARY=TMUOLIB.MICSFMTS PRINT;
         VALUE $USTEP (MIN=16 MAX=16 DEFAULT=16)
    'SYSOPDY STPDY000' = 'DAILY   DAYALL  '
    'SYSOPDY STPDY001' = 'DAILY   DAYSMF  '
    'SYSOPDY STPDY002' = 'DAILY   DAY010  '
    'SYSOPIU STPIU010' = 'INCRTSO INCR010 '
    'SYSOPDY STPDY003' = 'DAILY   DAY020  '
    'SYSOPIU STPIU020' = 'INCRRMF INCR020 '
    'SYSOPDY STPWK001' = 'WEEKLY  WEEK010 '
    'SYSOPDY STPWK002' = 'WEEKLY  WEEK020 '
    'SYSOPDY STPMN001' = 'MONTHLY MONTH010'
    'SYSOPDY STPMN002' = 'MONTHLY MONTH020'
    'SYSOPDY STPYR001' = 'YEARLY  YEAR010 '
    'SYSOPDT STPYR002' = 'YEARLY  YEAR020 '
          . . .        =       . . .
    'SYSOPWK STPWK001' = 'WEEKLY  WEEK010 '
    'SYSOPWK STPWK002' = 'WEEKLY  WEEK020 '
          . . .        =       . . .
    'SYSOPMN STPMN001' = 'MONTHLY MONTH010'
    'SYSOPMN STPMN002' = 'MONTHLY MONTH020'
          . . .        =       . . .
    'SYSOPYR STPYR001' = 'YEARLY  YEAR010 '
    'SYSOPYR STPYR002' = 'YEARLY  YEAR020 '

                  ... etc ...

    'DAILY   DAYALL  ' = 'SYSOPDY STPDY000'
    'DAILY   DAYSMF  ' = 'SYSOPDY STPDY001'
    'DAILY   DAY010  ' = 'SYSOPDY STPDY002'
    'DAILY   DAY020  ' = 'SYSOPDY STPDY003'
          . . .        =       . . .
    'INCRTSO INCR010 ' = 'SYSOPIU STPIU010'
    'INCRRMF INCR020 ' = 'SYSOPIU STPIU020'
          . . .        =       . . .
    'WEEKLY  WEEK010 ' = 'SYSOPWK STPWK001'
    'WEEKLY  WEEK020 ' = 'SYSOPWK STPWK002'
          . . .        =       . . .
    'MONTHLY MONTHL10' = 'SYSOPMN STPMN001'
    'MONTHLY MONTH020' = 'SYSOPMN STPMN002'
          . . .        =       . . .
    'YEARLY  YEAR010 ' = 'SYSOPYR STPYR001'
    'YEARLY  YEAR020 ' = 'SYSOPYR STPYR002'

                  ... etc ...

    '+               ' = '+               '
    ; RUN;


    The standard CA MICS job name can be found easily. The
    _USRSTEP macro is invoked with the CA MICS restart step
    name already in data element RESTEP. Thus, on entry to
    _USRSTEP code, RESTEP will begin with either DAY, INCR,
    WEEK, MONTH, YEAR, BKUP, or RSTR.

    This sample code for the _USRSTEP macro, with the
    expanded list in the $USTEP macro, may be used:

    MACRO _USRSTEP
      LENGTH USER16 USER16N $16 USER8 $8;
      IF RESTEP EQ :'DAY'        THEN USER8='DAILY';
      ELSE IF RESTEP EQ :'INCR'  THEN
              USER8 = 'INCR' || SCAN(PUT(RESTEP,$STEP.),1);
      ELSE IF RESTEP EQ :'WEEK'  THEN USER8='WEEKLY';
      ELSE IF RESTEP EQ :'MONTH' THEN USER8='MONTHLY';
      ELSE IF RESTEP EQ :'YEAR'  THEN USER8='YEARLY';
      USER16 = PUT(USER8,$CHAR8.)||PUT(RESTEP,$CHAR8.);
      USER16N = PUT(USER16,$USTEP.);
      IF USER16N NE USER16 AND LENGTH(USER16N) GT 8
       THEN RESTEP = SUBSTR(USER16N,8);
     %


    Note that the reverse translation does not require double
    mapping of job step names. You need only list each job
    step name once for reverse translation.


INSTALLING:

7.  Install the modifications, format, and macro.

    The most difficult part of installing step name
    modifications is the coordination of events. There is no
    unit-level concatenation of the JCL prototype library
    PROTOLIB, so all changes to it are complex-wide.

    If you are installing CA MICS for the first time, do the
    following:

    a. ___  Apply the changes to PROTOLIB by submitting the
            IEBUPDTE modifications explained above.

    b. ___  During unit database installation, after the
            COPYLIBU job is run, copy the $USTEP format
            changes to prefix.MICS.USER.SOURCE(USTEP) and
            install the _USRSTEP exit. Subsequent steps in
            the normal unit installation process will
            complete the installation of the step name
            modifications.

    If you have installed CA MICS previously, and have unit
    databases in production, do the following:

    a. ___  Suspend all JCL generation activity in all unit
            databases. CA MICS has no facility to guarantee
            this suspension, so you (the CA MICS
            administrator) must manually ensure this
            suspension.

    b. ___  Apply the changes to PROTOLIB by submitting the
            IEBUPDTE modifications explained above.

    *********************************************************
    * Perform steps c to f  for every unit database in      *
    * your CA MICS complex.                                 *
    *********************************************************

    c. ___  Enter the Operational Status and Tracking SUSPEND
            command to suspend operational processing in this
            unit.

    d. ___  Copy the $USTEP format changes to
            prefix.MICS.USER.SOURCE(USTEP), and install the
            _USRSTEP exit in the unit database.

    e. ___  Submit prefix.MICS.CNTL(JCLGEND). This job
            regenerates all operational JCL.

    f. ___  Enter the Operational Status and Tracking RESUME
            command to resume operational processing in this
            unit.

    *********************************************************
    * Perform steps c to f  for every unit database in      *
    * your CA MICS complex.                                 *
    *********************************************************

8.  Keep complete written records.

    Earlier sections of this book explain the benefits of
    keeping accurate documentation on all user modifications
    to CA MICS. Several suggestions for the form and storage
    of such documentation are given.

    CA MICS operational job step names are not modified
    often, for the reasons listed at the beginning of this
    section. If you elect to make such modifications, you
    will help ensure your continued satisfaction from product
    support incidents by having complete documentation of
    your changes at hand when you call.