The JDBC Connector that ships with IdentityIQ does use Apache Database Connection Pool libraries to manage a pool of connections. Database connection pools are created for one pool for every combination of database user, password, and URL. So if you have several applications which utilize the same user, password, and url, then all of those applications will all utilize the same database connection pool.
If you wish to control how these are configured, you can add settings (prefixed with "pool.") in the Attributes section of the JDBC Application definition to override the defaults.
<Application connector="sailpoint.connector.JDBCConnector" name="Example JDBC App" type="JDBC">
<Attributes>
<Map>
...
<entry key="pool.maxActive" value="10"/>
<entry key="pool.maxIdle" value="5"/>
<entry key="pool.maxWait" value="60000"/>
<entry key="pool.evictRuns" value="300000"/>
<entry key="pool.minEvictIdle" value="600000"/>
...
Here are the defaults used in IdentityIQ:
| Setting | Value | Description |
|---|---|---|
| maxActive | 10 |
How many active connections are allowed in the pool. Defaults to 10 connections. A value of -1 means unlimited. |
| maxIdle | 5 | Maximum connections which can sit in the pool idle. Defaults to 5 connections. |
| maxWait | 60000 | Maximum time waiting for a thread. Defaults to 1 minute (value is in milliseconds). |
| minEvictIdle | 600000 |
Minimum time the connection can be idle before it gets evicted. Defaults to 10 minutes (value is in milliseconds). |
| evictRuns | 300000 |
How often to run the eviction thread. Defaults to 5 minutes (value is in milliseconds). |
For more information on what these settings mean, visit: DBCP - Configuration
If you wish to disable connection pooling, you can add the following:
<Application connector="sailpoint.connector.JDBCConnector" name="Example JDBC App" type="JDBC">
<Attributes>
<Map>
...
<entry key="pool.disablePooling" value="true"/>
Connection pooling is on by default.