Example 2: Incorrect use of ++RELEASE

Assume the following ++HOLD MCS was processed as part of the normal preventive service installation:
++HOLD    (UZ12345)         /* Put this PTF             */
          FMID(FXY1040)     /* for this function        */
          ERROR             /* into hold error status   */
          REASON(AZ12345)   /* for the APAR.            */
          COMMENT(WHEN RUNNING PRODUCT XYZ and OC4
                  ABEND MAY OCCUR)  /*                  */.
You are running one system with product XYZ installed and one without product XYZ. The PTF provides a fix for another problem you are encountering on the system without product XYZ; so you want to install this PTF on that system. Here is an example of a ++RELEASE statement that lets you apply PTF UZ12345 without having to use the BYPASS operand:
++RELEASE (UZ12345)         /* Remove this PTF          */
          FMID(FXY1040)     /* for this function        */
          ERROR             /* from hold error status   */
          REASON(AZ12345)   /* for the APAR.            */.

The risk with this method of processing is that SMP/E no longer has any record of PTF UZ12345 being in exception status. Therefore, the next time any modifications are installed on the system with product XYZ installed, the PTF is installed, introducing a potential 0C4 problem into that system.

The correct way to install the PTF on the system without product XYZ is to use the following command:
SET      BDY(MVSTST1)       /* Process MVSTST1 tgt zone.*/.
APPLY    S(UZ12345)         /* Process the PTF.         */
         BYPASS(HOLDERR(AZ12345)) /* Bypass known error.*/.

Now the PTF is installed on one system, but SMP/E still remembers that it is in hold error status and does not allow it to be installed on any other system.

Note: Any other applicable operand (FORFMID, SOURCEID, and so on) can be used in place of the SELECT or S operand.