After restart of the Fusion Applications (FA), the very first clicks can at times get slow responses compared to subsequent clicks to the same pages, as a result of cache's not being populated yet. As with any Java application, this is normal as a large number of objects (classes, ADF objects, Profiles etc.) need to be loaded before serving the first request for the web page. Most objects are cached in various layers and subsequent requests are then very fast.
In rare cases where very heavy usage may come in suddenly after server restart (for example, hundreds of bank tellers logging in at 8am sharp after an overnight server restart) this can lead to a load issues that can cascade further into prolonged delays well after the very first call.
This article provides a method to address this.
Cold server (the term used to indicate a freshly started server) system performance can be improved in FA by priming the various system caches intelligently to provide a richer user experience right from the first click. The idea is to intelligently identify the most used artifacts to pre-load them at the server start to avoid the on-demand loading later during the first request.
The initial work done in this aspect has been in the Fusion Applications midtier java layers and further reviews are being done in other areas. Pre-loading artifacts during server startup will improve first user log in and navigation response times to bring it in line with warm server response times.
This has been available since Release 8 though modest and not well known, until now.
For the Fusion Applications layer pre-loading, a new application profile has been added : FND_PRELOAD_ARTIFACTS.
Once this profile is enabled and system restarted, it will first automatically identify a list of artifacts to pre-load and save it in the file system (currently, by default, in each domain home as files named _preload.log). The next server start will pre-load the artifacts listed in these preload files so that even the first click will be faster than if these objects were to be loaded on-demand when users log in.
Steps to enable the FND_PRELOAD_ARTIFACTS profile are shown below :
1. Go to Fusion Applications Setup and Maintenance page.
Typical default install URL (please change the host and port as needed) is:
Login as an user with the Application Implementation Consultant or Administrator role.
2. Select Tasks tab and search for “Manage Administrator Profile Values”.
3. In the Search Results section click on the “Go to Task” icon.
4. In the Manage Administrator Profile Values screen search for Profile Option Code “FND_PRELOAD_ARTIFACTS”.
5. In the search results section you should see FND_PRELOAD_ARTIFACTS.
6. In the Profile Values section for the row with default Profile Level “Site”, set the Profile Value (right-most column) to “Yes” using the drop down list. (In some monitors, you may need to scroll right or adjust the column sizes to see the Profile Value column).
7. Click on Save button at the top right.
Your system is now enabled to identify a list of artifacts to pre-load during the next shutdown and pre-load these at the next startup.
Tests have shown improvements of about 10 to 20% with this pre-loading technique and more work is in progress to broaden the scope and improve this further – we will have updates when possible.
While first click performance in application server cold start mode are not a big concern for normal users, it could impact some users and we have provided a peek at how pre-loading artifacts in java mid-tier layer can help. More work is in progress on other layers and we will update when possible.
Meanwhile, if you do test this, please feel free to drop a note on how much improvement you see in your system for cold start behavior for the very first calls – take some normal usage scenarios your users perform like creating an order or expense or user in the system.
Also remember that this is for initial calls to the system after restart and any performance issues later need to be reviewed separately.
Have fun with Fusion Applications !