Automatically Start the MUF after Each IPL

Document ID : KB000055598
Last Modified Date : 14/02/2018
Show Technical Document Details

For many years, CA has provided a package called CA-Datacom/AD as a restricted use repository for other CA products. This product package consists of several Advantage CA-Datacom / DB Database products that can be used as a "black box" DBMS for a selected set of CA products. Over the years, a number of other CA products have migrated to this data repository. In recent years, however, more system related products have started using CA-Datacom/AD. Unlike application packages, system packages often need to start immediately after an IPL. Therefore, any DBMS that supports that system package also needs to be started as soon as possible after the IPL.

In order to conserve the amount of ECSA that CA-Datacom uses, we use the CA-Datacom Multi-User Facility (MUF) DATASPACE startup option to store the main control blocks of the MUF, rather than using valuable ECSA storage. In order to use this option, a job that executes program DBDSPPR has to be initiated prior to the MUF coming up. This job will establish a common CA-Datacom data space that any MUF on that LPAR can use.

To solve this situation, the Computer Associates internal GIS support group chose to use Unicenter CA-OPS/MVS to start not only the job that creates the data space (job DLV1D10D as shown below) but also to submit the CA-Datacom/AD MUF (job DLV1M10D) as well. The following is a list of the steps that they took to accomplish this:

  1. Add the tasks to the OPSMVS STC Table.

  2. Set the prerequisites that the jobs need before they can be started, i.e. JES, net:
     KEYS       <CHKPOINT_STA IPL_STATE JOBNAME  TYPE             PREREQ
    DLV1D10D P UP DLV1D10D JES2
    DLV1M10D P UP DLV1M10D DLV1D10D
  3. Create a Stateman rule that CA-OPS/MVS will use to flag or set the status of the job to either fail/downfail or UP/UP (SYSPROG.OPSMVS.STATEMAN.RULES)
    SSM DISPLAY JOB=DLV1D10D
    OPSNTFY900 SSM REQUESTED INFO FOR DLV1D10D :
    ======>CURRENT_STATE: UP
    ======>DESIRED_STATE: UP
    ======>MODE : PASSIVE
    ======>TYPE :
    ======>PREREQ INFO : JES2
    ======>MISSING REQS : NULL
    ======>OWNER : DATACOM
    ======>SEVERITY : 2
    ======>DESCRIPTION : DATACOM

    SSM DISPLAY JOB=DLV1M10D
    OPSNTFY900 SSM REQUESTED INFO FOR DLV1M10D :
    ======>CURRENT_STATE: UP
    ======>DESIRED_STATE: UP
    ======>MODE : PASSIVE
    ======>TYPE :
    ======>PREREQ INFO : DLV1D10D
    ======>MISSING REQS : NULL
    ======>OWNER : DATACOM
    ======>SEVERITY : 2
    ======>DESCRIPTION : DATACOM
  4. If needed, as in this case, create a member in the CA-OPS/MVS STC Action table that will initiate submitting the job since your data set is not in the JES proc concatenation.
       EVRULE("SSMRETRY &SSMTABLE &JOBNAME,1,300,START UP");
    TSOCMD("SUBMIT 'DCMLV1.TESTSYS.JCL(DLV1D10D)'")
    EVRULE("SSMRETRY &SSMTABLE &JOBNAME,1,300,START UP");
    TSOCMD("SUBMIT 'DCMLV1.TESTSYS.JCL(DLV1M10D)'")

The following are the two sample CA-OPS/MVS rules that were coded to accomplish this:

SYSPROG.OPSMVS.STATEMAN.RULES(SSMDTSP)

 )MSG DB02501I
)PROC
JOB=MSG.JOBNAME
TEXT=TRANSLATE(MSG.TEXT)
SELECT
/*-------------------------------------------------------------------*/
/* +DB02501I - +DATASPACE OWNER ENABLED */
/*--+----1----+----2----+----3----+----4----+----5----+----6----+----*/
WHEN MSG.ID == 'DB02501I' THEN
ADDRESS SQL "UPDATE STCTBL SET CURRENT_STATE='UP'",
"WHERE JOBNAME=:JOB "
OTHERWISE NOP
END
RETURN

SYSPROG.OPSMVS.STATEMAN.RULES(SSMDTSP1)

 )MSG DLV1M10D:DB00201I
)PROC
JOB=MSG.JOBNAME
TEXT=TRANSLATE(MSG.TEXT)
SELECT
/*-------------------------------------------------------------------*/
/* +DB00201I - MULTI-USER ENABLED */
/*--+----1----+----2----+----3----+----4----+----5----+----6----+----*/
WHEN MSG.ID == 'DLV1M10D:DB00201I' THEN
ADDRESS SQL "UPDATE STCTBL SET CURRENT_STATE='UP'",
"WHERE JOBNAME=:JOB "
OTHERWISE NOP
ENDRETURN