Search This Blog

2008-04-18

Oracle Application Server and Portal Database Performance Related Behavior

It is found that Oracle Application Server's Portal has a lot of timeout related setting. The Portal stores all of its objects in Portal database and meta data repository database.

If either of these databases respond slow, Apache will starts to spawn new Apache and indirectly open new connection to Portal database as PORTAL and PUBLIC_PORTAL.

Apache will continue to spawn new connection until Portal database serve the requested data to Apache. The idle connection will be used to serve next Apache request. However, Apache will open new connect to Portal database (due to Oracle Application Server use modplsql, which its architecture)

Each database client connection consume SGA and PGA memory. A web page can easily has 20 over objects (images, .js, .xml, .css, etc), it will open 20 * 2 connections to Portal database, if it replied slow. So 100 browser access to Portal page will introduce 100 * 20 * 2 = 4,000.

If Portal database encountering any contention, such as CPU, and RAM, then it will cause Portal homepage to timeout, with HTTP 500 Internal Server error, or Portal shows "Listener is not responding"

When traffic maintain, and more and more users refresh their browser (when seeing partial images, or the whole page timeout), it will cause ripple effect to Portal database, and Portal engine will stop functioning by displaying HTTP 500 Internal Server error

Oracle Portal developer, up to Portal version 10.1.4.1, all image types are not cachable by browsers, because it lacks HTTP 1.1 standard of Last-Modified and ETAG tags. This is just one of the minor thing that introduce additional traffic. I have an Oracle SR with Oracle to show their developer that this is HTTP 1.1 standard since 1990's, and they are not following this standard in Portal content devliery. Only the rendered HTML page is cache able by browser, although they argue about IE 6 is a tested platform. To me, not compliant with HTTP 1.1 standard is impossible for any type of browser regardless it is IE 6, 7, FireFox 1, 2, Flock, Safari. If Last_Modified, and ETAG are not provided, any browser will not able to cache it

No comments: