IBM Health Checker for z/OS User's Guide
Previous topic | Next topic | Contents | Contact z/OS | Library | PDF


Defining a REXX check to IBM Health Checker for z/OS

IBM Health Checker for z/OS User's Guide
SC23-6843-02

After you've written your REXX check, use the ADD | ADDREPLACE CHECK parameter in an HZSPRMxx parameter to define check defaults and add the check. Do this as follows:
  1. Create a parmlib member.
  2. Use the ADD | ADDREPLACE CHECK parameter to define the new System REXX check definition. For example:
    ADDREPLACE CHECK(IBMSAMPLE,HZS_SAMPLE_REXXTSO_CHECK)
            EXEC(HZSSXCHK)
            REXXHLQ(IBMUSER)
            REXXTSO(YES)
            MSGTBL(HZSSMSGT)                              
            ENTRYCODE(2)                                  
            PARMS('DSN(MY.PARMLIB)')           
            SEVERITY(LOW)                                 
            INTERVAL(0:05)                                
            EINTERVAL(SYSTEM)                             
            DATE(20061219)                                
            REASON('A sample check to demonstrate an ',   
                  'exec check using TSO services.') 
    See the ADD or ADDREPLACE CHECK parameter in Syntax and parameters for HZSPRMxx and MODIFY hzsproc.
  3. Use the ADD,PARMLIB command to add the new parmlib member containing the REXX check definition. For example:
    F hzsproc,ADD,PARMLIB=xx	

While IBM® suggests using HZSPRMxx to define REXX checks, you can also define your REXX check by writing an authorized HZSADDCHECK exit routine r running in the IBM Health Checker for z/OS address space. See Writing an HZSADDCHECK exit routine.

Note that whether you use HZSPRMxx or an HZSADDCHECK exit routine to define your check, you cannot change the high level qualifier for the REXXIN and REXXOUT data sets once you have defined them.

You can specify the following parameters for REXX checks in either the ADDREPLACE CHECK parameter in HZSPRMxx or their equivalents in the HZSADDCK macro:

  • EXEC(execname) - This parameter, required for a REXX check defined in the HZSPRMxx parmlib member, specifies the name of the REXX exec containing the REXX check or checks. This parameter tells the system that you are defining a REXX check. For an assembler check, you would specify the CHECKROUTINE(checkname).

    If you define your REXX check with the HZSADDCK macro in an HZSADDCHECK exit routine r, the equivalent of EXEC(execname) is the REXX=YES,EXEC=execname parameters.

  • REXXHLQ(hlq ) - This parameter, required for a REXX check, specifies the high level qualifier for any input or output data set for the check.
  • REXXTIMELIMIT(timelimit) - This optional input parameter specifies the number of seconds a check iteration is allowed to run before the system ends it. A value of 0, which is the default, specifies that there is no time limit for the check.
  • REXXTSO(YES | NO) - This parameter, optional for a REXX check, specifies whether the check runs in a TSO environment or a non-TSO environment. The default is REXXTSO(YES).
    • REXXIN(YES | NO) - This parameter, optional for a REXX check, specifies whether or not a non-TSO check requires an sequential input data set. The name of the REXXIN data set will consist of the high level qualifier specified in the HLQ parameter, the exec name specified in the EXEC parameter, and an optional entry code specified in the ENTRYCODE parameter.

      You can only specify REXXIN(YES) if you also specify REXXTSO(NO).

If you modify the definition for your REXX check, the changes will take effect the next time the check runs.

Gotcha - Don't make a typo when defining your REXX check! When you define your REXX check in a HZSPRMxx parmlib member using the ADD|ADDREPLACE CHECK parameters, do it carefully, because it is a nuisance to delete check definitions created using parmlib members, because you can't delete the check definition, even if you delete all the checks. And creating multiple definitions for the same REXX check may cause an error when the check is added or refreshed.

If you do make a mistake, you can do one of the following to resolve the problem:
  • Issue the following command, which will first delete all existing check definitions and then add the definitions found in the specified parmlib members:
    F hzsproc,REPLACE,PARMLIB=(suffix1,suffix2,...suffixn),CHECKS
  • If you make a mistake when defining a REXX check in an HZSADDCHECK exit routine r, you must delete the check (by creating a policy statement that deletes the check) and then delete the erroneous exit using SETPROG. You can then add the corrected HZSADDCHECK exit routine r again.
  • Stop and start IBM Health Checker for z/OS® to delete the check definition.
Why does IBM Health Checker for z/OS make it so hard to delete a check definition? Because if you delete your check definition, you lose all the history of the check and may find it more difficult to re-define it.
Installation requirement for running compiled REXX checks: In order to run compiled REXX checks, installations must have either the SEAGALT or SEAGLPA data set available in the system search order.
  • SEAGALT is provided in z/OS V1R9 and higher
  • SEAGLPA is provided in the RIBM Library for REXX on System z product
REXX execs that are not compiled do not require the SEAGALT or SEAGLPA libraries. For more information, see:

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014