Improving Performance

The performance of the JCL verifications, reformatting, or enforcement can be boosted by loading site related information into shared objects.

This chapter includes the following topics:

Overview

The performance of the JCL verifications can be significantly improved by loading basic site related information into a shared object allocated in "above the bar" memory. The loaded information is later accessed by all subsequent invocations of Control-M JCL Verify until the shared object is removed. Loading the information is optional and the user can choose whether to use it to gain the performance boost.

Each invocation of Control-M JCL Verify scans the shared object for the information and if it exists will use it. If the shared object does not exist (either it was not loaded or already removed) then each invocation gathers its own copy of the information with transparency to the user (although a significant increase in the response time might be noticed).

The information loaded into the shared object includes:

  • Programs found in the system's LINKLIST and LPA

  • Mounted disk volumes

  • Available device units

  • JES procedures libraries

  • JES input and output classes

  • JES destinations

  • Printers and punches

  • NJE nodes

  • FCB images

  • Additional JES2 or JES3 information that is required to check JCL and JES statements

  • Site standard rules

  • Enforcement rules

  • Reformatting rules

The loaded data is static and is not refreshed automatically. For example, if a new module is added to the LPA after the shared object was loaded, it will not be recognized by the subsequent verifications unless the data is refreshed. Therefore, although the nature of the data kept in the shared object is static, it is recommended that the data is refreshed on a periodic basis.

Loading and removing site information

The following functions are used for loading and removing site information:

Tab.JV.9.1 Functions used for loading and removing site information

Function

Description

REFRESH

The utility loads the information and creates a new shared object allocated in "above the bar" memory.

If a shared object already exists (as a result of a preceding REFRESH) and is not in use by a verification process, the shared object is removed, and a new shared object is created.

If a shared object already exists and is in use by a verification process, a new shared object is created. The memory of the old shared object will not be released until one of the next REFRESH or REMOVE executions finds it unused. (Note that this is not considered a problem and therefore no error message will be issued).

REFRESH is the default function.

REMOVE

Removes the shared object (if it exists), provided it is not currently in use by a running verification process.

An error message is issued if the shared object is not found or if it is found currently in use and therefore cannot be removed.

When the shared object is in use, the user can try using REMOVE again after a few seconds or minutes. Alternatively, the user can use REMOVEF, as described below.

REMOVEF

Forcefully removes the shared object (if it exists) even if it is currently in use by a running verification process. An error message is issued if the shared object is not found.

Warning: Any running verification process that uses this shared object will abend.

After the running REMOVEF, stop and then restart the IOAOMON monitor, if it is already started.

The SCOPE parameter, used with the REFRESH, REMOVE, and REMOVEF functions, determines which data is loaded or removed. When SCOPE is set to ALL, the loading or removing function is applied to all Control-M JCL Verify tables and the rules listed in the CTJRULE, ENFRULES, and REFRULES members (located in the olprefj.PARM library). When SCOPE is set to RULES, the loading or removing function is applied to only to the rules listed in the CTJRULE, ENFRULES, and REFRULES members.

With the Control-M JCL Verify monitor, the operator can load or remove the basic site related information by using the following MODIFY commands:

To load the rules

  • Copy
    F ctjmon,REF,SCOPE=RULES
  • Copy
    F ctjmon,REF,SCOPE=ALL

To remove the rules

  • Copy
    F ctjmon,REM,SCOPE=RULES
  • Copy
    F ctjmon,REM,SCOPE=ALL

To forcefully remove the rules

  • Copy
    F ctjmon,REMF,SCOPE=RULES
  • Copy
    F ctjmon,REMF,SCOPE=ALL

where

  • ctjmon is the name of the Control-M JCL Verify monitor

  • REF is the abbreviated form for the REFRESH function

  • REM is the abbreviated form for the REMOVE function

  • REMF is the abbreviated form for the REMOVEF function

Return Codes

Tab.JV.9.2 Return Codes

Code

Description

0

Operation performed successfully.

4

  • REMOVE: at least one shared object is in use

  • REMOVE/REMOVEF: shared object does not exist

12

Parameter error in PARM.

16

REMOVE was performed before REFRESH was performed to create the shared object, and therefore there is nothing to remove.

20

Internal error - one of the searching routines failed. Check for previous messages in SYSPRINT or JOBLOG, and contact BMC Customer Support.

24 and above

Internal error in the Control-M JCL Verify product. Try again. If the problem reoccurs, contact BMC Customer Support.

36

Internal error - Failed to load one of the searching routines. Check the region size and the STEPLIB statement, and try again. If the problem reoccurs, contact BMC Customer Support.

44

Control-M JCL Verify is not APF-authorized.