The following is the third part of a six-part series on Oracle Application Server 10g administration. Each tip is excerpted from the Osborne Oracle Press book, "Oracle Application Server 10g administration handbook," by John Garmany and Don Burleson. Check back frequently for the next installment, or go to the main series page for all installments.
The Oracle Application Server 10g Web Cache
The Oracle Application Server 10g Web Cache is designed to support not only a basic web server but also an application server creating dynamic data. For clarity we will refer to the Oracle Application Server 10g Web Cache as the Web Cache. We will refer to the Web Cache's internal cache as the cache. Web Cache integrates with any manufacturer's application server and can be used to load-balance a group of application servers. The Web Cache sits between the user and the application server. When a user requests a page, the Web Cache verifies that the page is still valid and if so, returns the page from the cache. If the page has expired or is marked stale, the Web Cache will request the page from the application server, send the page back to the user, and store it in the cache for future use.
Pages that consist of multiple objects that become stale at different times can be stored in the cache, and the Web Cache will request the stale objects from the application server and serve the valid object from its cache. This ability to mix static and dynamic content can significantly reduce the load on the application server. Before covering how the Web Cache knows when a document is stale, we need to discuss where Oracle's Web Cache fits into the web infrastructure.
Locating the Web Cache
Because Oracle's Web Cache not only caches static and dynamic content, but also load-balances across multiple application servers, there are many configurations available to meet individual needs.
- Single Server
A surprising number of companies deploy the entire Oracle Application Server 10g on one server, including the infrastructure, the customer database, the application server, and the Web Cache. This method is useful as long as the server is capable of handling the user load. In this configuration, the Web Cache may be used mainly to cache dynamic content and let the OHS server handle the static content. In these configurations, memory is normally at a premium, and so there is a trade-off between memory used by the Web Cache and the memory requirements of all the other application server/database components.
- Separate Server for Web Cache
If possible, you will want to place the Oracle Web Cache on a separate server. Because of Web Cache's relatively small footprint, it can be hosted on inexpensive commodity servers with 2GB of RAM and still provide a significant performance boost.
- Remote Web Cache Servers
The Web Cache does not have to be directly in front of the OHS/application server. A company with dispersed offices can set up a local Web Cache that will support only that office. If the separate offices use the application in different ways, the Web Cache will only be caching their pages. This improves efficiency, because as pages become stale, they will only need to be refreshed in the cache that is serving that page. The application server supports all the company's offices, but each office has a Web Cache supporting only its operation.
About the authors
A senior Oracle trainer with Burleson Consulting, John Garmany is also a respected Oracle expert and author and chosen by Oracle Press to write the "officially authorized edition" for the "Oracle Application Server 10g administration handbook." John also serves as a writer for DBAZine, "Oracle Internals" and has authored several popular Oracle books.
Don Burleson is one of the world's top Oracle database experts with more than 20 years of full-time DBA experience. He specializes in creating database architectures for very large online databases and he has worked with some of the world's most powerful and complex systems. Don's professional Web sites include www.dba-oracle.com and www.remote-dba.net.