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 […]
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.
What would be your approach? Share your experience and questions in the comments below.
Having entrepreneurial and business knowledge, I am eager to help innovative companies and startups to build their sales strategy and business model, improve their value proposition and
design and develop their product. If you want a software project delivered, you can message me and I will make sure to do my best to propose the best solution. My main expertise is in the Oracle Fusion Middleware stack - I have been heavily involved in actual development, consulting and delivery of Webcenter, ADF, SOA Suite, BPM and Java EE solutions.
To provide the best experiences, we use technologies like cookies to store and/or access device information. Consenting to these technologies will allow us to process data such as browsing behavior or unique IDs on this site. Not consenting or withdrawing consent, may adversely affect certain features and functions.
Functional
Always active
The technical storage or access is strictly necessary for the legitimate purpose of enabling the use of a specific service explicitly requested by the subscriber or user, or for the sole purpose of carrying out the transmission of a communication over an electronic communications network.
Preferences
The technical storage or access is necessary for the legitimate purpose of storing preferences that are not requested by the subscriber or user.
Statistics
The technical storage or access that is used exclusively for statistical purposes.The technical storage or access that is used exclusively for anonymous statistical purposes. Without a subpoena, voluntary compliance on the part of your Internet Service Provider, or additional records from a third party, information stored or retrieved for this purpose alone cannot usually be used to identify you.
Marketing
The technical storage or access is required to create user profiles to send advertising, or to track the user on a website or across several websites for similar marketing purposes.