Previous Topic: 2.3.3.3 JCLGEN Parameters for Special Requirements

Next Topic: 2.3.3.3.2 JCLGEN Definition Tables

2.3.3.3.1 Prototype Library (PROTOLIB)

The purpose of modifying this library is to allow your
changes to be automatically carried forward during subsequent
CA MICS JCL generations.  You must make any required changes
and extensions to the MICS.PROTOLIB member used to create the
member you actually wish to modify, rather than to the
generated member itself.

The prototype library contains JCL job streams, JCL
procedures, MACROs, and CLISTs members in symbolic form.  The
JCLGEN process reads these prototype members and, using your
definitions from various MICS.PARMS members and
CA MICS-provided definition tables, substitutes the
appropriate values for the members' symbols.  In addition,
any Generation Control Language (GCL) statements imbedded in
the prototype member will be executed.  The completed members
are stored in the MICS.CNTL, MICS.MACAUTOS, MICS.USER.SOURCE,
or MICS.CLIST libraries.
Figure 2-25 lists the sharedprefix.MICS.PROTOLIB members that
are not specified directly by a GENLIST member.  They are
included by other prototype members or are named in the
JCLINFO or JCL$Iccc members.  In any case, they do not have a
one-to-one correspondence with any member in the target
libraries.

CA MICS maintenance to the prototype library will be applied
through normal PSP product changes.  Any user modifications
to the prototype library members must be applied using
IEBUPDTE and saved in MICS.LOCALMOD.CNTL so they may be
reapplied as needed.
Some prototype members are generated during component
generation and stored by the CYCLEGEN job in
prefix.MICS.PARMS for the sake of keeping them unit-specific.
Any modifications you make to these members will have to be
reapplied following the CYCLEGEN job.  The generated PARMS
members are marked shown in Figure 2-26.

+-----------------------------------------------------------+
| PROTOLIB                                                  |
| MEMBER     JOBNAME         DESCRIPTION                    |
|-----------------------------------------------------------|
| CCCCGEN    cccCGEN   Component Generation Jobs            |
| CCCCHECK   cccCHECK  Component CHECK Jobs                 |
| CCCEVA     cccEVA    Component Exection Valuation Jobs    |
| CCCPGEN    cccPGEN   Component Parameter Generation Jobs  |
| COMPDATA   DAILY     GCL to Create Daily Work Files       |
| COMPINCL   DAILY     GCL for REPEAT INCLUDE by Component  |
| DBDDS                GCL for Data Base DD Statements      |
| DBTPDDS              GCL for BACKUP Tape DD Statements    |
| DYcccsss   DAILY     Component Step for Each DAILY Job    |
| DYRPT400   DAILYRPT  Component Report Step for DAILY Job  |
| DYUSR500   DAILY     USER Step for DAILY Job              |
| ISPF                 GCL to define ISPF environment       |
| ISPSTART             Start SAS in batch TMP environment   |
| JCLGEN     JCLGENx   GCL for Unit Level JCLGEN Jobs       |
| JCLGENC    JCLGENn   GCL for Complex Level JCLGEN Jobs    |
| MICSASM              GCL to create SYS1.PROCLIB member    |
| MICSCOM              GCL to create SYS1.PROCLIB member    |
| MICSDB               GCL to create SYS1.PROCLIB member    |
| MICSDM               GCL to create SYS1.PROCLIB member    |
| MICSDOC              GCL to create SYS1.PROCLIB member    |
| MICSDU               GCL to create SYS1.PROCLIB member    |
| MICSGT               GCL to create SYS1.PROCLIB member    |
| MICSGU               GCL to create SYS1.PROCLIB member    |
| MICSNDB              GCL to create SYS1.PROCLIB member    |
| MICSRPTS             GCL to create SYS1.PROCLIB member    |
| MICSSHR              GCL to create SYS1.PROCLIB member    |
| MNcccsss   MONTHLY   Component Step for Each MONTHLY Job  |
| MNRPT400   MONTHRPT  Component Report Step for MONTHLY Job|
| MNUSR500   MONTHLY   User Step for MONTHLY Job            |
| SAS                  GCL to define SAS/CA MICS environment|
| STEPLIB              GCL to define STEPLIB DD statement   |
| WKcccsss   WEEKLY    Component Step for Each WEEKLY Job   |
| WKRPT400   WEEKRPT   Component Report Step for WEEKLY Job |
| WKUSR500   WEEKLY    USER Step for WEEKLY Job             |
| YRcccsss   YEARLY    Component Step for Each YEARLY Job   |
| YRUSR500   YEARLY    USER Step for YEARLY Job             |
+-----------------------------------------------------------+
|  Note: most PROTOLIB member names correspond to the name  |
|  of the output member generated from this library.  Only  |
|  the exceptional names are listed in this table.          |
+-----------------------------------------------------------+

 Figure 2-25.  Non-GENLIST Members in MICS.PROTOLIB

+-----------------------------------------------------------+
| PARMS                                                     |
| MEMBER     JOBNAME         DESCRIPTION                    |
|-----------------------------------------------------------|
| MNccc300   MONTHLY   Tape Allocation for MONTHLY History  |
| WKccc300   WEEKLY    Tape Alloc for WEEKLY Audit/History  |
+-----------------------------------------------------------+
|  Note:  These unit-level PARMS library members are        |
|  generated by a CYCLEGEN job.  Any modifications made to  |
|  them will be lost after the next CYCLEGEN run.           |
+-----------------------------------------------------------+

 Figure 2-26.  Generated Members in prefix.MICS.PARMS
2.3.3.3.1.1 Making a Simple JCL Change in MICS.PROTOLIB

Suppose, for the sake of this example, that you started
getting SYSTEM=80A (insufficient virtual region size) abends
in the DAYSMF step of the CA MICS DAILY job.  You note that
an unmodified CA MICS generates the following EXEC card for
this job step:

     //DAYSMF EXEC MICSDB,RSIZE=750K

You decide, perhaps after consultation with the CA MICS
Product Support Group, that 1024K is needed in your shop.  If
you modified prefix.MICS.CNTL(DAILY), the change would have
to be repeated after the next JCLGEN, so you decide to take
advantage of the flexibility afforded by MICS.PROTOLIB.

From the explanation of the logic of JCLGEN in Section
2.3.3.3, you determine that you must look at the JCL$Iccc
members in sharedprefix.MICS.PARMS to find out which PROTOLIB
member is used in the generation of prefix.MICS.CNTL(DAILY).
In JCL$IBAS you find the following entry:

*
*                                    C
*                                 L  O          C
*                              T  I  P          L  P
*                PROTO         I  N  I          A  R
*          ------------------  M  E  E          S  T
* MEMBER   TYPE COMP  MBRNAME  E  S  S UJOBNAME S  Y
*======== ===== ==== ======== == === = ======== = ==
    .       .     .      .     .  .  .
    .       .     .      .     .  .  .
    .       .     .      .     .  .  .
 DAILY     CNTL  BASE       . 30  80 1        . .  .

The absence of a MBRNAME specification tells you that the
PROTOLIB member to be used is "DAILY." Examining
sharedprefix.MICS.PROTOLIB(DAILY), you find the following
line:

     //DAYSMF EXEC &MICSDB,RSIZE=750K       ...      00064000
You prepare a local modification member in
sharedprefix.MICS.LOCALMOD.CNTL using the IEBUPDTE utility to
update this member of PROTOLIB (thus observing the standard
CA MICS modification practice of not using an online editor):

//jobname  JOB  ....
//UPDATE   EXEC PGM=IEBUPDTE
//SYSPRINT DD   SYSOUT=*
//SYSUT1   DD   DISP=OLD,DSN=sharedprefix.MICS.PROTOLIB
//SYSUT2   DD   DISP=OLD,DSN=sharedprefix.MICS.PROTOLIB
//SYSIN    DD   DATA,DLM=ZZ
./ CHANGE NAME=DAILY
:* U00001|0592|INCREASE DAYSMF REGION TO 1024K    */ 00002801
//DAYSMF EXEC &MICSDB,RSIZE=1024K,SYSPARM=&SYSPARM   00064000
ZZ
The first change is a notation to the user comment block at
the beginning of the member.

After running this update job and verifying that it
functioned properly, you must regenerate the DAILY job by
running the JCLGENU job stream.
Edit prefix.MICS.PARMS(JCLGENU) and enter a line that reads:

  DAILY

Now submit prefix.MICS.CNTL(JCLGENU) to regenerate the DAILY
member in prefix.MICS.CNTL.