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


Why does my check reappear after I delete it? Understanding delete processing

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

The hzsproc,DELETE command is a onetime action issued against a check. That means that if you issue the hzsproc,DELETE command to delete a check, it will probably reappear to run the very next time something kicks off ADDNEW processing. No matter how it's kicked off, ADDNEW processing tries to refresh all checks, bringing any temporarily deleted check back in the process. In this section, we'll explain a bit about how delete processing works. But the bottom line is this: If you really want to delete a check permanently, do it in a policy statement.

We'll use a scenario to explain why your check keeps coming back. But first, you'll need to understand that all the relevant facts about a check routine are contained in a check definition contained in either:
  • An HZSADDCHECK exit routine
  • An HZSPRMxx parmlib member, created with the ADD | ADDREPLACE CHECK command
When a command or other request kicks off ADDNEW processing, the system adds or reactivates the check as defined in the check definition.
  1. Okay, let's say that:
    • CHECK(A,B) is added to the system by HZSADDCHECK exit routine AEXIT.
    • CHECK(C,D) is added to the system in the HZSPRMxx parmlib member with the ADD | ADDREPLACE CHECK command.
  2. Now, let's say that someone issues a MODIFY command or non-policy parmlib statement that deletes CHECK(A,B). When delete processing completes:
    • CHECK(A,B) is in the deleted status
    • CHECK(C,D) is eligible to run
  3. Now, something kicks off ADDNEW processing, such as a request to refresh CHECK(C,D). A refresh request consists of a delete of the check, followed by an ADDNEW request.
  4. The ADDNEW command reactivates CHECK(C,D) as defined in the HZSPRMxx member. But ADDNEW processing also runs the AEXIT HZSADDCHECK exit routine, and AEXIT adds CHECK(A,B) back to the system, or undeletes it. Deleted CHECK(A,B) is back! ADDNEW processing kicked off for one check reactivates all checks as defined in check definitions in either HZSADDCHECK exit routine’s or HZSPRMxx parmlib members.
So, if you really want to delete a check permanently, use a policy statement in an HZSPRMxx member, such as:
ADDREPLACE POLICY STMT(DEL1) DELETE Check(A,B)
Then issue hzsproc,ADD,PARMLIB=xx to add the HZSPRMxx member containing the new policy statement to the list of members containing the IBM® Health Checker for z/OS® policy.

Now, when something kicks off ADDNEW processing, the system will reactivate all the undeleted check definitions, bringing back CHECK(C,D) but not CHECK(A,B).

Note that ADDNEW processing is staged, so that the system will first process all check definitions to add all the checks, bringing back CHECK(A,B). Then however, the system also applies the policy statements, including the statement that deletes CHECK(A,B). In the end, CHECK(A,B) stays deleted when you put the delete in the policy.

Go to the previous page Go to the next page




Copyright IBM Corporation 1990, 2014