Support Article
JDBC connection issue under high concurrency loads 5K
SA-41827
Summary
A systems administrator is performing stress testing of their environment, and has observed large numbers of JDBC Pooled Connections from their Tomcat implementation. As a result, large numbers of connections are created to their DBMS instance, which in turn causes performance problems and DBMS usage licensing problems.
Error Messages
No error messages are displayed on screen; no specific error messages are found in the Pega logfile. However, usage of the following SQL against the Oracle Database identifies the large number of simultaneous connections:
SELECT
MACHINE,
COUNT(1)
FROM
V$SESSION
GROUP BY
MACHINE;
During performance testing, the expected number of simultaneous connections to the database is 700. The actual observed number of connections is 4500.
Steps to Reproduce
To reproduce this issue, the systems administrator kicks off a performance test of 1000 users over a 4 hour period.
Root Cause
Examination of the Tomcat implementation revealed that the Process Commander Database Connection URI strings (jdbc/AdminPegaRULES and jdbc/PegaRULES) were defined in the wrong configuration file: ${CATALINA_HOME}/conf/context.xml.
As a result, at startup, Tomcat would create both of these connection pool definitions FOR EVERY INSTALLED servlet. Note that by default, Tomcat includes 5 utility and demonstration servlets on install. The installation of Process Commander installs prweb, prsysmgmt, and prhelp. Therefore, the total number of connection pools created at startup was 16.
Resolution
To resolve this issue, the Process Commander Database Connection URI values were moved to the correct definition file: ${CATALINA_HOME}/conf/catalina/localhost/prweb.xml
By making this change, the two connection pools are created only for the prweb servlet. This eliminates the unused/unwanted connection pools and their connections to the database.
Published August 26, 2017 - Updated October 8, 2020
Have a question? Get answers now.
Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.