Skip to Main Content
  • Questions
  • Oracle Forms V Oracle APEX Check List


Question and Answer

Connor McDonald

Thanks for the question.

Asked: September 17, 2018 - 6:37 pm UTC

Last updated: September 21, 2018 - 12:30 am UTC


Viewed 10K+ times! This question is

You Asked

Oracle Forms has some strength and is still the best BackOffice tool from ORACLE from my Point of view. Here are some issues that I miss with APEX. Maybe you already have these Options in 18.x.?

Can you check this list:

1. 100% accessiblity for blind users (full keyboard, screenreader control)
2. object.libraries - referencing most properties of all items like colors, sizes, pos in one file
3. Independence of browsers (Firefox, IE, Chrome) and CSS specifica
4. Running 2000 sessions on one server sharing the app-load between weblogic and database
5. In Block Memory - loading 100.000 records and more into one LOV or POPLIST in seconds
6. Automatic locking of changed records. Automatic Binding of queries
7. Starting an application on client in less than 3 seconds


and we said...


Thank you for your excellent questions. Let me answer each of them as best I can.
We hope you join our upcoming APEX Office Hours: Exploring Oracle Form Modernization on 20 September, 2018 @ 10:00 EDT {Go to for all the details}

1. Accessibility: Looking at the current Forms 12c VPAT there are very few issues cited and most have workarounds. We devote significant effort to also making APEX as accessible as possible. There are some issues with APEX which are well documented in the APEX 18.1 VPAT and Release Notes. If you are aware of the issues and follow the Accessibility Guide you can definitely create APEX apps that work very well for users with different abilities.

2.Object Libraries: APEX is not a file based tool like Forms. Instead application definitions are stored as meta-data within Oracle DB. Within an application you can define shared components which are used across any page within the app. Many of these components can be copied and subscribed, allowing developers to create a "Master App" which is then subscribed to in all of the other apps. The Master App can readily include the theme and theme style. Theme Roller can be used by developers to readily set the colors used by the app.

Oracle Forms can utilize pixel perfect placement of screen components, however, this has the major disadvantage of making the screens non-responsive so they do not work well on smaller devices such as tablets and smartphones. APEX utilizes relative positioning, rather than exact positioning, based on HTML tables to display screen content. The Universal Theme provides "fully" responsive apps OOTB. Therefore, you are comparing apples and oranges with regards to sizes.

3. Browsers: Oracle APEX will run in any modern browser as outlined in the APEX Installation Guide. To be honest I'm not sure what issues you are alluding to.

4. Large Concurrent Users: APEX is significantly more scalable than Oracle Forms for the primary reason that APEX only consumes database resources when an end user requests or submits a page. Once the page request / submission is processed by the DB then the connection utilized is returned to the pool and can be utilized by any other DB request. Forms on the other hand requires a DB connection be kept open for every connected user for the duration of their session. With APEX, even though you may have 2,000 sessions you will probably only have 5 - 10 concurrent sessions (for a well tuned APEX app), which equates to 5 - 10 people hitting enter within milli-seconds of each other. The mid-tier for APEX is simply passing requests back and forth between the browser and database and is rarely loaded.  As a case in point the most used app within Oracle is ARIA People, which provides the ability for any employee (130,000 users) to query the Oracle org structure. This app, written in APEX, gets an average of 1.5 million page views per week day, with median rendering time of 0.05 seconds, by roughly 30 - 40,000 distinct users per day. At any one time we are lucky to see 5 concurrent users.

5. In Block Memory: To be honest I have not tried to load a Pop Up LOV with 100,000 records so can not comment. I imagine it should load in a very short time.

6. Automatic Locking: Oracle Forms and APEX operate very differently in this regard. Forms using pessimistic locking where records are locked when they are querried (using select for update), whereas, APEX uses oppurtinistic locking where a checksum of the record is caluculated when the record is querried and then checked again when the record is updated to ensure no other users have updated the record since it was querried. Both techniques achieve the same objective. Given APEX is stateless then it is not practical to use pessimistic locking.

7. App Start Time: With APEX nothing should take more than 3 seconds for end users. The expectation of web applications is that every page is rendered in under a second. The amount of time it takes to render an APEX page is directly related to the speed of the underlying queries. If the queries take > 3 seconds to return results then APEX will take > 3 seconds to return the page. The APEX engine adds very little time (< 0.03 seconds) to the rendering time. As an example time how long it takes for to render. If you have an APEX page that takes significant time to load then you should turn on debugging and review the query execution times to determine why the page is slow.

For further details read the APEX Migration Guide, in particular Appendix A.



  (1 rating)

We're not taking comments currently, so please try again later if you want to add a comment.


minor correction re Oracle Forms pessimistic locking

Jeffrey Kemp, September 18, 2018 - 7:13 am UTC

"Forms using pessimistic locking where records are locked when they are querried (using select for update)"

Forms uses pessimistic locking but the lock is taken when the user first starts editing the record, not when it is queried.
Connor McDonald
September 21, 2018 - 12:30 am UTC

Also, if memory serves, with later versions of Forms you can *choose* between pessimistic and optimistic at the block level