Closing Pooled Database Sessions
Understanding mod_plsql 3-31
c.
Each Oracle HTTP Server process could pool at most n mod_plsql connections per DAD, where n is the total number of concurrent mod_plsql requests which
need to perform a database activity.
d.
User sessions are switched within a pooled database connection for a DAD. For DADs based on Oracle Application Server Single Sign-On SSO, proxy
authentication is used to switch the user session. For non-SSO users, using HTTP basic authentication with the username and password not in the DAD,
users are re-authenticated on the same connection.
e.
Multiple DADs may point to the same database instance, but database connections are not shared across DADs even within the same process.
f.
Unused DADs do not result in any database connections. In the worst-case scenario, the total number of database connections pooled for each
DAD is a factor of the total number of Oracle HTTP Server httpd processes, multiplied by the maximum number of concurrent mod_plsql requests within a single
process. If you have configured the Oracle HTTP Server processes to a high number, you need to configure the back-end database to handle a corresponding number of
database sessions, and remember that this configuration value needs to be multiplied times the number of Oracle HTTP Server instances that use the back-end database. If
you want to reduce the maximum number of database connections needed by mod_ plsql, then you should consider reducing number of Oracle HTTP Server processes,
and run more threads within each process to achieve the desired concurrency. One drawback of running more threads within a single process is that a process failure will
impact all the running threads within the process.
For example, if there are three Oracle HTTP Server instances configured to spawn a maximum of 50 httpd processes each with one thread-per-process, plus two active
DADs, you need to set up the database to allow 300 3502 sessions. This number does not include any sessions that are needed to allow other Web applications to
connect. Now, if you want to reduce the number of database connections needed by mod_plsql, instead of running 50 httpd processes per instance, you could tune Oracle
HTTP Server to have 5 threads per-process instead, and reduce number of HTTPD processes to 10. With such a setup, you could reduce the number of database
connection requirements. The required number of database connection for mod_plsql could go down to as low as 60 3102 connections. The actual reduction would be a
factor of how many concurrent mod_plsql requests are actually serviced per process.
On Windows platforms, the Oracle HTTP Server runs as a single process. On such systems, the mod_plsql connection pool is shared across threads, and the total number
of database connections is a factor of the number of concurrent requests for each DAD. Due to the sharing of database connections across threads,
Section 4.3.4, Two-Listener Strategy
does not apply to Windows systems.