HikariCP connection pool configuration
Beginning with Pega® Platform 7.4, HikariCP manages connection pooling when a database is defined by URLs and maximum connections are not specified. When the connection pool size is exceeded, the result is a connection time-out. An exception appears in the log file as shown in the following example:
Caused by: java.sql.SQLTransientConnectionException: HikariPool-1 - Connection is not available, request timed out after 30000ms. [java] at com.zaxxer.hikari.pool.HikariPool.createTimeoutException(HikariPool.java:583) ~[HikariCP-java7-2.4.12.jar:?] [java] at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:186) ~[HikariCP-java7-2.4.12.jar:?] [java] at com.zaxxer.hikari.pool.HikariPool.getConnection(HikariPool.java:145) ~[HikariCP-java7-2.4.12.jar:?] [java] at com.zaxxer.hikari.HikariDataSource.getConnection(HikariDataSource.java:85) ~[HikariCP-java7-2.4.12.jar:?]
The default maximum size of the HikariCP connection pool is 20 and can be changed in prconfig.xml file settings. To avoid performance issues, and because HikariCP aggressively acquires connections, set the maximum size of the HikariCP connection pool to a true maximum value, not to an arbitrary maximum value. Set the maximum connection pool size separately for each database, as shown in the following example:
<env name="database/databases/PegaRULES/connectionPoolSize" value="30" />
<env name="database/databases/PegaDATA/connectionPoolSize" value="30" />
If HikariCP is used for a specific database, the following entry appears in the log file:
Connection Pool size is set to "20"