Skip to main content

This content has been archived and is no longer being updated. Links may not function; however, this content may be relevant to outdated versions of the product.

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

Was this useful?

0% found this useful

Have a question? Get answers now.

Visit the Collaboration Center to ask questions, engage in discussions, share ideas, and help others.

Did you find this content helpful?

We'd prefer it if you saw us at our best.

Pega Community has detected you are using a browser which may prevent you from experiencing the site as intended. To improve your experience, please update your browser.

Close Deprecation Notice