well, oracle is configure to have 400 session at once.
My understanding is that Apache/mod_plsql should cleanup the processes after connecting to DB. That is what causing the problem. It is not the database.
When i submit a uRL for a n index page. Does Apache create a new process P1 to server the request? You say it will keep that TCP or SSL process for me to use in 15 seconds. What happens afterwards. Does it create a new process for new reqeusts or process 1 will continue to be there serving other requests.
That process should connect to database, get the data and return request to user. I assume after process does that it should release connection to database and wait for next URL request.
http://download.oracle.com
http://download-west.oracl
Main Topics
Browse All Topics





by: routinetPosted on 2009-11-04 at 08:07:05ID: 25740721
Big caveat: I know Oracle is a database, and that's about it. I'm a little shaky on Apache pre-fork vs. worker, so I may be basing my advice on incorrect assumptions. Learn as you go, right? :)
om/errors/ ORA-00020. php
I think you're looking in the wrong place. You're receiving an Oracle error, not an Apache error. It sounds like you already looked at that, though. Does the number you are seeing the error message relate to the configuration you changed in Oracle? See here for some basic troubleshooting:
http://www.shutdownabort.c
Remember, a single child process/thread from Apache can create several database connections, depending on how the application is coded. One Apache request does not necessarily mean one Oracle connection. Do you use persistent connections in the application? You may also want to check your connection timeout or idle timeout in Oracle.
For Apache, I assume you are using pre-fork?
The KeepAlive setting is impacted by the MaxKeepAliveRequests directive. But that should really only impact the speed of requests for secondary resources belonging to any particular page. For example, when I request /index.php, the server will wait 15 seconds before closing my original TCP session. That gives me time to also request /index_picture_1.jpg and /index_picture_2.jpg without the overhead of setting up a new transport session. This does not mean to imply Apache is keeping stateful connections - that belongs in the context of the web application. It just means the client does not need a new TCP session for each request.
The same goes for SSLSessionCacheTimeout, in a way. The timeout here is for the SSL session instead of the TCP session. If I request an SSL page, I need to complete a handshake with the server to initialize the encryption, etc. That requires a certain amount of overhead in time and resources. Caching that information prevents clients from having to re-establish that session each time. Unlike KeepAlive, however, this does not maintain a connection with the client.
When you say you keep seeing the number of processes grow, do you mean httpd processes? You have MaxServers set to 20, so you should never see anything beyond the parent process plus 20 children. Once you reach that point, new requests will either go into the ListenBacklog queue (slow connections), or receive a "500.13 Server Too Busy" response.