Managing the Database Connection Pool

Managing the Database Connection Pool

Managing the Database Connection Pool

Pulse uses a database connection pool to manage concurrent connections to the Pulse relational database (MS SQL Server). The connection pool settings control how many database connections Pulse maintains and how idle connections are handled.

Note: Connection pool settings apply only when using MS SQL Server as the Pulse database. They do not apply to H2 or Postgres.

Connection Pool Parameters

Connection pool settings are configured in Pulse.cfg under the [DBConnectionPool] section:

[DBConnectionPool] IdleTimeoutSeconds = 60 MinimumIdle = 1 MaximumPoolSize = 10

Parameter

Description

Default

Parameter

Description

Default

IdleTimeoutSeconds

The maximum time (in seconds) a connection is allowed to sit idle in the pool before it is removed.

60

MinimumIdle

The minimum number of idle connections Pulse maintains in the pool at all times.

1

MaximumPoolSize

The maximum number of connections the pool will maintain.

10

When to Adjust Connection Pool Settings

The default values are appropriate for most environments. Consider adjusting them if:

  • High concurrency: You have many simultaneous Pulse users or a large number of TM1 instances being monitored, causing database query queuing.

  • SQL Server connection limits: Your SQL Server license or configuration restricts the number of concurrent connections — reduce MaximumPoolSize accordingly.

  • Connection timeout errors: Increase MaximumPoolSize if Pulse logs connection timeout errors during peak usage.

Applying Changes

  1. Stop the Pulse Application Server service.

  2. Open conf/Pulse.cfg in a text editor.

  3. Update the values in the [DBConnectionPool] section.

  4. Save the file and restart the Pulse Application Server service.

Monitoring Connection Usage

To monitor how many connections Pulse is using at any given time, you can:

  • Query the SQL Server dynamic management view sys.dm_exec_sessions and filter for the Pulse database name.

  • Check the Pulse pulse.log file for any Connection pool exhausted or timeout messages.

Notes

  • MaximumPoolSize should not exceed the SQL Server's configured maximum connections limit.

  • Setting MinimumIdle to 0 means Pulse will not maintain any idle connections, which reduces resource usage but may add latency when new connections are needed.

  • These settings are only relevant for the Pulse relational database connection. Opensearch connections are managed separately.