Determining errors in the SCRPTLIB configuration

SCRPTLIB members can be checked for errors prior to generating the current plan. This gives you the possibility to highlight potential problems and to avoid them before they affect your business system. There are two ways to accomplish this task:
Note: This requires that PTFs UK02507 and UK02508 are installed.

Creating a trial plan before generating the current plan, exposes errors in the SCRPTLIB members. If errors are found, the same messages that are issued for the daily planning job log can help you make corrections and avoid problems when creating, extending, or replanning the current plan.

Trial plans do not support variable substitution in the SCRPTLIB members. Therefore, if you specified a recovery option on a fault-tolerant agent like the following:
RECOVERY OPTION(CONTINUE) JOBUSR(maestro) JOBWS(&OWSID)
the error message EQQ3077E is issued in the batch EQQMLOG and the trial plan fails.

The EQQSLTOP batch program contained in the EQQSLCHK sample JCL provides a syntactic check of all the script library members in the EQQSCLIB. For every member containing an error the parsing process issues a message describing the problem found. It also issues message EQQ4033I that identifies the script library where the failing member is defined.

In this way, even if different members with the same name are defined in more than one script library allocated in the EQQSCLIB ddname, members in error are located immediately. If all script libraries defined in the EQQSCLIB ddname are empty, warning message EQQ4031W is issued.

The EQQSLCHK sample runs in stand-alone mode, without the need to interact with the current plan database. You can use this sample to parse only a subset of scripts or all the members contained in the allocated script libraries.

You can customize the SYSIN statement of the EQQSLTOP program in one of the two following ways:
  • To parse and check all the members of the script libraries allocated in the EQQSCLIB ddname:
    SYSIN DD*
    PARSE
  • To parse and check only the stated members:
    SYSIN DD*
    PARSE MEMBER (membnme)
    PARSE MEMBER (...)
    where:
    • membnme is the name of the script library member to check.
    • Each member name can be at most eight characters long.
    • Only one parse statement is allowed in every row.
    • Blank rows are allowed in between. All the rows are processed until the end of the SYSIN ddname.
The following is an example of EQQSLTOP:
-------------------------------------------------------------
File parse program
-------------------------------------------------------------
PARSE    EXEC PGM=EQQBATCH,PARM='EQQSLTOP',REGION=4M
STEPLIB   DD  DISP=SHR,DSN=OPCDEV.TEST.APFLIB
EQQMLIB   DD  DISP=SHR,DSN=OPCDEV.TEST.MSGS
EQQPARM   DD  DISP=SHR,DSN=EID.EIDA.PARM(EIDA)
EQQSCLIB  DD  DISP=SHR,DSN=EID.EIDA.SCRPTLIB
SYSMDUMP  DD  DISP=MOD,DSN=EID.EIDA.SYSDUMPB
EQQDUMP   DD  SYSOUT=*
EQQMLOG   DD  SYSOUT=*
EQQDMSG   DD  SYSOUT=*
SYSIN     DD  *
PARSE MEMBER (membnme)     (commented out)
PARSE MEMBER (...)