5 Apply Functional Patch Bundle

This section describes how to apply patch bundles to the Oracle Fusion Applications environment in an efficient manner.

The following topics are discussed:

If the process of applying a Functional Patch Bundle is understood, see the Download the Latest Patch Bundle and Its Prerequisites section.

Anatomy of a Functional Patch Bundle

To ensure the successful and efficient application of a patch bundle, review all requirements described in the README file. A patch bundle README file typically describes the following information:

  • Prerequisites for the patch bundle, which may include patches that must be applied or steps to be followed.

    MANDATORY: Ensure that the latest P4FA has been applied before applying a patch bundle, even if it is not mentioned in the patch bundle README file.

  • The actual steps to apply the patch bundle.

  • Required post-installation patches for the patch bundle.

The structure of the README file may vary, depending on the product family.

For example, the Oracle Fusion Financials Patch Bundle README file contains the following sections:

  • Prerequisites

  • How to validate and apply this update

  • Post-installation

  • Functional documentation, including a reference to the functional README document and the Patch Payload

In contrast, the Oracle Fusion Procurement Patch Bundle README file contains the following sections:

  • Prerequisite Patches

  • Corequisite Patches

  • Pre-Installation Steps

  • Post-Installation Steps

  • Included Bug Fixes, including the Patch Payload for each bug fix

Furthermore, the Oracle Fusion Human Capital Management (HCM) Patch Bundle README file contains the following sections:

  • Prerequisite Patches, which refers to Pre-Installation Steps

  • Corequisite Patches

  • Pre-Installation Steps

    MANDATORY: The HCM bundle always requires that the Business Intelligence (BI) bundles be applied as a prerequisite.

  • Post-Installation Steps

Release Cadence of Functional Patch Bundles

Fusion Applications patch bundles are typically released on a monthly basis, by each functional product family, for a specific release. HCM releases patch bundles for Release 12 (11.12.x.0.0), as does Financials and CRM, for example. All patch bundles are cumulative and Oracle recommends that the bundles are installed as soon as possible.

Download the Latest Patch Bundle and Its Prerequisites

Perform the following steps to download the latest patch bundle and any prerequisites required by the patch bundle:
  1. Create a directory for storing the downloaded patches, such as /tmp/finbundle, in this example.
  2. Log in to My Oracle Support.
  3. Navigate to "Patches and Updates".
  4. On the Patch Search panel, select "Product or Family (Advanced)".
  5. Enter "Oracle Fusion NAME" where NAME is the name of the product family, such as Oracle Fusion Financials Operations. Optionally choose to exclude superseded patches.
  6. Click Search.

    Figure 5-1 Patch Bundle search window


    Description of Figure 5-1 follows
    Description of "Figure 5-1 Patch Bundle search window"
  7. In the Search Results screen, find the most recent patch bundle with the naming convention such as "FA FIN PATCH BUNDLE 7 11.1.9.2.150610". The search results may also include AOO functional patches.

    Figure 5-2 Patch Bundle Search Results


    Description of Figure 5-2 follows
    Description of "Figure 5-2 Patch Bundle Search Results"
  8. Click the patch number, which is in the Patch Name column, and then select Read Me to open the patch bundle Readme file. Check if any prerequisite patches are required. Information about downloading prerequisite patches will be in the README file for the patch bundle.
  9. Click Download to download the patch bundle zip file to the directory created for this bundle, for example, /tmp/finbundle.
  10. Download the prerequisite patches and any additional patches which are required as indicated in the respective README files.

Apply All Patches Related to a Functional Patch Bundle

Create a patch plan to apply all of the prerequisite patches, the patch bundle and any post-installation patches. Using a patch plan significantly reduces the time required to apply the patch bundle because it allows the patching framework to minimize the number of environment bounces during the application of the patch bundle, its prerequisites and post-installation patches.

In addition to applying patch bundles, the steps in this section can also be followed for applying multiple one-off patches in a single patching session, outside of a patch bundle.

Perform the following steps to create and apply a patch plan:

  1. Set the PATH environment variable to:
     /u01/APPLTOP/dbclient/perl/bin:$PATH
    
  2. Set the PERL5LIB environment variable to:
    APPLICATIONS_BASE/dbclient/perl/lib/5.8.3:APPLICATIONS_BASE/dbclient/perl/lib/site_perl/5.8.3/:APPLICATIONS_BASE/dbclient/perl/lib/site_perl
    
  3. Use the following command syntax to create the patch plan file:

    $APPLICATIONS_BASE/dbclient/perl/bin/perl APPLICATIONS_BASE/fusionapps/applications/lcm/ad/bin/adGenerateFAPatchPlan.pl -grouptop download_location 
    

    The download_location is the location where the patches were downloaded.

    An excerpt from a sample patch plan follows:

    - <fapatchexecplan>
    <generated_date>20130531</generated_date>
    <fapatchutilversion>1.1</fapatchutilversion>
    - <group_list>
    - <group>
    - <patch>
     <id>33001</id>
     <description />
    <artifact_type>BIP</artifact_type>
    <language>US</language>
     </patch>
     </group>
    - <group>
    - <patch>
    <id>9912345</id>
     <description />
     <artifact_type>SOA</artifact_type> 
    <language>US</language>
    </patch>
    </group>
     </group_list>
     </fapatchexecplan>
    

    Run the fapmgr validate command to find any potential issues that could result in failure while applying the patches. Resolve all validation failures during this step, to prevent failures during patch application. This validation step is strongly recommended, especially for patches that deliver artifacts whose deployment is automated by Patch Manager, such as SOA composites.

    Patch validation runs again by default when the patches are applied. An example of the validate command follows:

    FA_ORACLE_HOME/lcm/ad/bin/fapmgr.sh validate -grouptop path_to_unzipped_patches-patchingplan path_to_patch_plan_xml_file
    
  4. Use the following checklist before patching the target environment:

    1. Ensure all users are off the system.

    2. Set the environment variable for the APPLICATIONS_BASE and FA_ORACLE_HOME directories.

    3. Run Health Checker to perform the Patching Readiness Health Checks and the General System Health Checks, as shown in the following example:

      FA_ORACLE_HOME/lcm/hc/bin/hcplug.sh -manifest FA_ORACLE_HOME/lcm/hc/config/PatchingReadinessHealthChecks.xml [-DlogLevel=log_level]
      
      FA_ORACLE_HOME/lcm/hc/bin/hcplug.sh -manifest FA_ORACLE_HOME/lcm/hc/config/GeneralSystemHealthChecks.xml [-DlogLevel=log_level]
      
    4. Manually shut down the Oracle Enterprise Scheduler Service (ESS) servers, especially when a patch contains a PL/SQL package, by performing the following steps:

      1. Stop the Oracle Enterprise Scheduler request processor and dispatcher to prevent new requests from being processed.

      2. Cancel any in-progress requests.

      3. Shutdown the Oracle Enterprise Scheduler WebLogic Server Managed server.

    5. CONDITIONAL: If a patch contains BI Publisher reports, ensure that the versions of any customized BI Publisher reports are available. If a patch includes an update to a catalog object that was delivered with an Oracle Fusion application, the patch will overwrite any customizations applied to the original report.

    6. CONDITIONAL: If a patch contains BI Publisher artifacts, the BI OPMN control process, which is similar to a node manager, must be running for online mode validation to succeed.

  5. Apply the patch plan using the fapmgr apply command as shown in the following example:

    FA_ORACLE_HOME/lcm/ad/bin/fapmgr.sh apply -grouptop path_to_unzipped_patches -patchingplan path_to_patch_plan_xml_file -online -stoponerror [-workers number_of_database_workers]
    

    Monitor the progress of the patching session and verify its successful completion by reviewing the Log Summary from a browser. If the patching session completes successfully, proceed to the next step.

  6. Review the Diagnostics report to see if any manual steps are required for the artifacts included in the patch.

  7. Review the Diagnostics report to determine if Managed Servers require restart. If any servers must be restarted manually, the report provides the target domain and the names of the cluster and Managed Servers that must be restarted.

    CONDITIONAL: If the patch contains JAZN artifacts, resolve any conflicts by reviewing the log files.

  8. Run Health Checker to perform the Post Patching Health Checks and the General System Health Checks, as shown in the following example:

    FA_ORACLE_HOME/lcm/hc/bin/hcplug.sh -manifest FA_ORACLE_HOME/lcm/hc/config/PostPatchingHealthChecks.xml [-DlogLevel=log_level
    
    FA_ORACLE_HOME/lcm/hc/bin/hcplug.sh -manifest FA_ORACLE_HOME/lcm/hc/config/GeneralSystemHealthChecks.xml [-DlogLevel=log_level
    

For additional information about the fapmgr commands, see the Patch Manager Command Reference section.

Apply Optional Language Packs

This step is only mandatory if Language Patches are necessary in the Fusion Applications environment.

If the environment contains installed languages other than US English, download and apply the same patches described in the previous section for the languages. Use the patching framework to build a patch plan and apply the patches.

Create a unique patch download directory, such as /tmp/finbundle_lang, and a separate patch plan for each language.

Apply Patches in Hot Patching Mode

Perform the following steps to apply a patch in hot patching mode:

  1. Confirm that the patch can be applied in hot patching mode by running the validate command, as follows:

    fapmgr.sh validate -patchtop patchtop_directory -hotpatch
    
  2. If the patch is valid for hot patching mode, run the apply command, as shown in the following example:

    fapmgr.sh apply -patchtop patchtop_directory -hotpatch [-maintenanceendtime YYYYMMDDHHmm] [-forceterminateactivetasks]
    

The command line parameters for hot patching are the following:

  • hotpatch: Use hotpatch mode for applying or validating a patch

  • maintenancewaitperiod: The number of minutes until impacted jobs will be paused

  • maintenanceendperiod: The estimated time and date that a hotpatch session will complete

  • forceterminateactivetasks: Force all active tasks to terminate after the maintenance wait period

Verify Whether Patch Manager Was Successful

Verify whether Patch Manager was successful by reviewing the Log Summary from a browser, as follows: