Limiting connections to the PegaRULES database

When started, the Pega Platform opens two connections to the PegaRULES database. To provide good response to requestors, the system uses a pool of connections over time.

In most cases, the pool is created and managed by the application server, not by the Pega Platform, however, you can control the size of the pool and the timeout interval.

If database access is needed when all existing connections are busy, the system creates an additional connection. Connections remain open until the Pega Platform is stopped, or until they are idle for 5 minutes or longer. The value of IdleConnectionTimeout in the prconfig.xml file defines the interval, in seconds, after which an idle connection is marked to be closed.

As initially installed, the system does not limit the number of open connections that can be created. You can limit the size of this pool using an optional setting in the prconfig.xml file:

  1. Open the prconfig.xml file with an XML or text editor.
  2. Locate the PegaRULES database user name and password entries.
  3. Add the following information:
    <env name="database/databases/pegarules/maxConnections"
    <env name="database/databases/pegarules/maxConnectionsTimeout"
    to limit the size of the pool to 20 connections, and cause a Java exception if the connection pool is empty for 30 seconds when a requestor is waiting.
  4. Save the updated file.
  5. Undeploy and redeploy the system to make this change effective.
Note: You can also use Dynamic System Settings to configure your application.

If the limit is reached and all connections are busy when an additional database request arrives, the requestor waits. If a connection is not available after 10 seconds (or the interval set in the maxConnectionsTimeout value), a Java DatabaseException is thrown.

Do not set this limit too low, or deadlocks and poor response may result. You can set a threshold for PEGA0026 alerts to detect long waits.

For more information, see the PDN article How to set the maximum number of JDBC connections to the PegaRULES database.