Home arrow Oracle arrow Page 4 - Configuring the Oracle HTTP Server

Managing Processes and Connections - Oracle

In the second article in a five-part series covering the Oracle HTTP Server (OHS), you will learn about server configuration directives, including access control directives and others. This article is excerpted from chapter five of the book Oracle 10g Application Server Exam Guide, written by Sam Alapati (McGraw-Hill, 2006; ISBN: 0072262710).

  1. Configuring the Oracle HTTP Server
  2. Access Control Directives
  3. Administration Directives
  4. Managing Processes and Connections
By: McGraw-Hill/Osborne
Rating: starstarstarstarstar / 4
January 18, 2007

print this article



There are several server configuration-level directives you can use in the httpd.conf server configuration file to control the number of OHS processes and other runtime server-related issues. On a UNIX server, you use the following server-level directives to manage processes and connections:

  • StartServers   The StartServers directive determines the number of child server processes created with the parent control process. The default value for the StartServers directive is 5. Because the OHS server will dynamically adjust the number of child server processes depending on the load, you don't have to worry about setting the value for this directive, in general.
  • MaxClients    The MaxClients directive determines the maximum number of simultaneous connections that will be handled by the OHS server. Any connection attempts over the MaxClients setting will be queued, and will be accepted once the existing connections start dropping off. The default value for the MaxClients directive is 150.
  • MaxRequestsPerChild   This directive lets you specify the number of requests each child process can handle before it dies. Each child process will handle a maximum of 30 requests during its lifetime before it automatically expires. If you set the MaxRequestsPerChild directive to a value of 0, the child processes will not die until you reboot the OHS server. Although this may seem like a tempting thing to do, remember that you increase the risk of running out of memory, say by a child process incurring a memory leak during its (eternal) lifetime. Also, when the OHS server load drops, it's advisable to run with a smaller number of child processes than that required during the peak load times. By setting a positive value (the default is a positive value of 30), you guarantee that the child processes have a finite lifetime, thus matching the number of child processes with the OHS server load.
  • MaxSpareServers   This directive specifies the maximum number of unused child server processes that must be kept running. By default, the value for this directive is a maximum of ten server processes. If there are more idle servers than that specified by the MaxSpareServers directive, OHS will start killing idle child processes until it reaches the MaxSpareServers setting.
  • MinSpareServers    This directive specifies the minimum number of child servers that must be kept running, and the default value for this directive is 5. If there are fewer than five child server processes alive, new processes are created at an increasing rate on a per second basis, until the rate set by the MAX_SPAWN_ RATE parameter is reached. Default value for the MAX_SPAWN_RATE parameter is 32.

    You use the following directives in both the UNIX and the Windows systems: 
  • KeepAlive   This directive enables you to use a persistent connection, which improves the scalability of the Oracle HTTP Server. By default, the KeepAlive directive is set to ON, meaning persistent connections are enabled by default when you use OHS. Since HTTP connections are stateless, if you don't set this parameter to ON, a browser will need to make separate connections for each request from the server. Thus, for a Web page that contains a half a dozen images calling for .gif files, a client Web browser is forced to open a total of seven connections--one for the page and six requests for the six image files. Making multiple connections to satisfy the client request as shown here will increase the latency due to the time it takes to establish all the connections. By letting the KeepAlive directive remain at its default ON setting, your Web server performance will be dramatically higher, because latency will drop due to the need for fewer connections. Of course, there is an inherent tradeoff in using the KeepAlive On setting, because this way your server will have the burden of managing more persistent connections than if you had set the KeepAlive directive OFF.

on the job:   You must keep the KeepAlive directive set to OFF if you're using OracleAS Clusters.

  • KeepAliveTimeout   This directive determines the number of seconds the OHS Server waits for a connection request following the first connection, before terminating the connection.
  • MaxKeepAliveRequests    This directive determines the number of requests allowed per connection, when you set the KeepAlive directive to ON. Default value is 0, which means that there is no limit to the number of requests that are allowed. You must set MaxKeepAliveRequests at a high value to make OHS perform efficiently.
  • ThreadsPerChild   This directive controls the number of simultaneous requests for connections. It is applicable only to a Windows server.

Please check back next week for the continuation of this article.

>>> More Oracle Articles          >>> More By McGraw-Hill/Osborne

blog comments powered by Disqus
escort Bursa Bursa escort Antalya eskort


- Oracle Java Security Woes Continue
- Oracle's New IaaS Cloud Option: There's a Ca...
- Oracle Acquires Eloqua to Boost Cloud Presen...
- Choosing Innovation: Oracle Survey Insights
- Oracle Fixes Privilege Escalation Bug
- Oracle`s Communications Service Availability...
- Oracle Releases Exalytics, Taleo Plans
- Oracle Releases Communications Network Integ...
- Oracle Releases Communications Data Model 11...
- Oracle Releases PeopleSoft PeopleTools 8.52
- Oracle Integrates Cloudera Apache Distro, My...
- Oracle Releases MySQL 5.5.18
- Oracle Announces NoSQL Database Availability
- Sorting Database Columns With the SELECT Sta...
- Retrieving Table Data with the LIKE Operator

Developer Shed Affiliates


Dev Shed Tutorial Topics: