In most of the ADF outsourced projects we are developing, we need to tune the ADF application for best
performance. We do this by tuning the AppModule or the View Objects.
Application Module Tuning
When tuning the Application Module, you need to have in mind the estimated number of concurrent users. In this example we suppose this number is 75.
The Application Module tuning is as follow:
1. Initial Pool Size = 8 (number of AM instances created on first ever access, recommended to be 10% more
than estimated number of concurrent users)
2. Maximum Pool Size = 100 (number of maximum AM instances pool can create, recommended to be 20%-30% more than initial pool size)
3. Referenced Pool Size = 75 (number of active AM instances, recommended to be the same as estimated number of concurrent users – to avoid frequent passivation/activation)
4. Minimum Available Size = 5 (when set to 0, allows to release all AM instances after an idle timeout, this helps to release reserved database connections as well. Is set to 0 for tests in stress environment, in your system you may set it to a higher value, but less than referenced pool size)
5. Maximum Available Size = 25 (maximum number of AM instances after pool clean-up)
6. Idle Instance Timeout = 600 (AM instance is considered inactive after 10 minutes of inactivity, this if for the stress test. In your system, you would set it something close to Web session timeout – to prevent
frequent passivation/activation)
7. Pool Pooling Interval = 600 (AM pool is cleaned every 10 minutes)
Views Performance Tuning
In order to optimize data loading, we need to tune all View objects used to display UI tables, lists or LOVs.
For example, this view is used to display ADF table with scrollPolicy=”page” and iterator range size of 20 rows. With the following setup the View will fetch 20 rows at once from the database and load the page iterator with 20 rows at once.
These best practices are taken from official Oracle documentation and also AndrejusBaranovski’s official blog. For further details on how to create stress test and additionally optimize the settings you can refer to: Stress Testing Oracle ADF BC Applications – Passivation and Activation.