START HZSPROC policy nuances

Some of the accumulating effects of applying and activating two policies in a row, without refreshing checks in between, show a different behavior at Health Checker start-up time.

For example consider having one or more HZSPRMxx parmlib members with essentially the following policy related statements and no ADD CHECK statements:
  1. ADDREPLACE POLICY(FIRSTPOLICY) STATEMENT(somestmt11) ...
  2. ACTIVATE POLICY(FIRSTPOLICY)
  3. ADDREPLACE POLICY(SECONDPOLICY) STATEMENT(somestmt21) ...
  4. ACTIVATE POLICY(SECONDPOLICY)

What you might expect is that all checks will have the settings from both FIRSTPOLICY and SECONDPOLICY applied, cumulatively, when Health Checker has completed its start phase. But, no, only settings from the SECONDPOLICY will be applied. This is because the system will read those parmlib members before adding any checks (from the HZSADDCHECK exit...), and therefore the FIRSTPOLICY will only be applied to the still empty set of health checks that the systems knows about at that point. At the point when checks actually get added to Health Checker only the SECONDPOLICY is active anymore and only its settings will be applied to those checks.

Compare this to the situation where you use a MODIFY HZSPROC,ADD,PARMLIB=xx command to apply those policy statements not at start-up time, but after Health Checker is already up and running. Then you get the accumulated effect as described in the previous sections.

Therefore, it is not a good idea to have multiple ACTIVATE POLICY statements, for different policies, in your initial set of HZSPRMxx parmlib members.