Versions and Patch Sets

Oracle strongly recommends that you regularly upgrade to the latest version of Application Express available from the Downloads page.
The majority of bugs reported against Application Express are listed on the Known Issues page for the related release.
Where possible a patch set is made available for a bug to enable those running the latest version of Application Express to update their installation.
In between major versions there are often point releases, for example Application Express 4.2.1, which correct bugs and incorporate all of the patch sets released to that point in time, but do not introduce new functionality.
Patch sets and point releases are available for download from My Oracle Support.Note: If upgrading from an earlier release of Application Express, for example from Application Express 4.1 to Application Express 4.2.1, then you can simply download the latest files from the Download page.
However, if you are upgrading from Application Express 4.2 to Application Express 4.2.1 then you must download the point release from My Oracle Support.

When you install Oracle Database 11gR2, Oracle Application Express 3.2.1 is included by default. Similarly, Oracle Database 11gR1 came with Application Express 3.0.2.
In all scenarios the latest release on the Downloads page should be installed as soon as possible as it includes additional features, plus numerous functional and performance improvements, combined with the latest bug fixes.

To determine which version of Application Express you are currently running, log in to your Application Builder environment.
On the home page, the current release will be shown in the bottom right corner.
Only one version of Application Express can be configured into a single Oracle Database server.
If you wish to run different versions of Application Express you will need to run each in a separate Oracle Database.
You can import an application exported from a prior release, however, if you export an application from Application Express 4.2.x then you will not be able to import it into any prior release.

Schemas

The Application Express engine consists of a large number of Oracle tables and thousands of lines of PL/SQL programs residing within their own version specific schema.
Application Express 4.2.x is installed into the APEX_040200 schema, Application Express 4.1.x is installed into the APEX_040100 schema.
For Application Express 3.1.x and prior releases the schema is named FLOWS_xxxxxx.

You utilize the same installation procedure and files, downloaded from OTN, whether inserting Application Express for the first time or updating a previous release.
The installation script checks for the latest existing Application Express schema and automatically copies the metadata, for the instance, workspaces, and applications, from the previous schema into the APEX_040200 schema.
The original schema associated with the previous release is left completely unaltered.
Following best practices, Oracle recommends that you create new tablespaces for the new release of Application Express and follow the appropriate installation instructions as outlined in the documentation.

Applications

When a new release of Application Express is installed all of the existing applications built into the previous release are automatically updated to run in the latest release.
However, the intent of the Application Express development team is to not change the user interface as a result of an upgrade.
As a consequence, application components that may alter the user interface are left untouched by the upgrade.
It is the responsibility of the developer to manually review such components and update them or leave them running as before.
Examples include new features added to interactive reports, charts (charts that utilize 'Custom XML' must be updated manually otherwise the custom XML will be lost), certain validations, and so on.
In order for you to review the impact of these component upgrades, go to the Application Builder for each application upgraded and select Utilities > Upgrade Application and then review each upgrade type.
You can easily upgrade the non-upgraded component for one, all, or a selection of the instances of that component from these pages.
Please remember that updating the user interface of an application may require changes to existing application documentation / training guides and may also require that end users are retrained if the pages are significantly different.

The Oracle Application Express Advisor (Advisor) enables you to check the integrity and quality of your Oracle Application Express application.
Advisor functions like a compiler or LINT and flags suspicious behavior or errors.
Running Advisor checks the integrity of your application based on the underlying metadata.
Each subsequent release of Application Express further tightens the rules engine, such as invalid developer code that was ignored previously may now produce an error.
The Advisor will identify these issues as errors, along with numerous other warnings, to improve the quality of your applications.
Therefore, Oracle strongly recommends that you run the Utilities > Advisor for every upgraded application.

Within each application, you can also specify the Compatibility Mode in the Application Definition, which changes certain runtime behaviors.
The options include Pre 4.1, 4.1 and 4.2.
Read the associated item help to determine the appropriate Compatibility Mode and the implications for upgraded applications.

Testing

The amount of regression testing required as part of upgrading Application Express is dependent on the complexity, size and number of applications upgraded.
The majority of "complex" pages, including those that incorporate significant JavaScript or extensive PL/SQL computations and/or processes, should be included in regression testing.
Developers should ensure pages which they manaually updated based on the Upgrade Application or Advisor are also included in regression tests.
Not all remaining pages have to be included in regression testing, however, Oracle recommends you include a good representation of different page types includes reports, charts, and forms.
An application should always be included in regression testing if its compatibility mode was modified post-upgrade.

While regression testing of upgraded applications is imperative to minimize risk of disrupting the end-users, it is important that such testing is not drawn out for an extended period.
Generally, the development environment is upgraded first, allowing developers to review the applications and make initial updates as necessary or desired.
Then the QA / Test environment is updated and the upgraded applications from development are built into this environment.
Until such time as the Production environment is also updated it is often difficult or dangerous to make changes to production applications to resolve a bug or develop new functionality.

Clean-Up

Following the successful upgrade of all of the environments to the latest release of Application Express, you should clean-up the environments.
Once you start developing with the newer release, the Application Express schema associated with the prior release can be deleted.
If you installed the prior release into a separate tablespace, you can simply drop the specific tablespace.
Oracle recommends leaving the old Application Express schema(s) for a few weeks and then removing them from the Development, QA / Test, and Production environments.
This clean-up releases disk space and ensures that no one accesses an outdated schema using tools such as SQL Developer or SQL*Plus.

Reverting to a Previous Release

One of the major benefits of Application Express automatically creating a new schema for each major release of Application Express is that reverting back to a prior release is a relatively simple and low risk option.
If you revert back to a prior release, any modifications made in the Application Express 4.2 instance will be lost.
The main task is to switch the public synonyms and grants to point at the previous schema instead of the APEX _040200 schema.
The exact steps are outlined in the Oracle Application Express Installation Guide, Appendix A: Oracle Application Express Troubleshooting section.
It is also important to remove the APEX_040200 schema once tests running on the prior release are successful.