I have an oracle http server with apache setting as these.
MinSpareServers 5
MaxSpareServers 20
StartServers 5
MaxClients 150
MaxRequestsPerChild 0
Timeout 300
KeepAlive On
MaxKeepAliveRequests 100
KeepAliveTimeout 15
Oracle processes parameters was increased from 150 to 500 and problem still occurs.
We have a few web applications that use SSL using that server. Everything worked fine - no issues.
Then we start getting ORA-00020.
ORA-00020: maximum number of processes ( number) exceeded
Does anyone know what may be causing this error in the database. These are basically caused by HTTPD processes created by web server. Should not those be killed after they serve the web page or staty there but server other pages. I keep seeing the number of processes increase by the hour until it does not accept any connections.
I was looking at this directive and did not understand how HTTP is stateful. I thought it was always stateless.
is this what keeps a process alive. This is a default in oracle install though.
KeepAlive Directive
Description: Enables HTTP persistent connections
Syntax: KeepAlive On|Off
Default: KeepAlive On
Context: server config, virtual host
Status: Core
Module: core
The Keep-Alive extension to HTTP/1.0 and the persistent connection feature of HTTP/1.1 provide long-lived HTTP sessions which allow multiple requests to be sent over the same TCP connection. In some cases this has been shown to result in an almost 50% speedup in latency times for HTML documents with many images. To enable Keep-Alive connections, set KeepAlive On.
For HTTP/1.0 clients, Keep-Alive connections will only be used if they are specifically requested by a client. In addition, a Keep-Alive connection with an HTTP/1.0 client can only be used when the length of the content is known in advance. This implies that dynamic content such as CGI output, SSI pages, and server-generated directory listings will generally not use Keep-Alive connections to HTTP/1.0 clients. For HTTP/1.1 clients, persistent connections are the default unless otherwise specified. If the client requests it, chunked encoding will be used in order to send content of unknown length over persistent connections.
See also
The SSLSessionCacheTimeout directive in httpd.conf determines how long the server keeps a saved SSL session (the default is 300 seconds). Session state is discarded if it is not used after the specified time period, and any subsequent SSL request must establish a new SSL session and begin the handshake again. The SSLSessionCache directive specifies the location for saved SSL session information, the default location on UNIX is the $ORACLE_HOME/Apache/Apache
/logs/ directory or on Windows systems, %ORACLE_HOME%\Apache\Apach
e\logs\. Multiple Oracle HTTP Server processes can use a saved session cache file.