Connection Manager (connectionManager)

Connection Manager configuration

NameTypeDefaultDescription

agedTimeout

A period of time with second precision

-1

Amount of time before a connection can be discarded by pool maintenance. A value of -1 disables this timeout. A value of 0 discards every connection, which disables connection pooling. Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), or seconds (s). For example, specify 30 seconds as 30s. You can include multiple values in a single entry. For example, 1m30s is equivalent to 90 seconds.

connectionTimeout

A period of time with second precision

30s

Amount of time after which a connection request times out. A value of -1 disables this timeout, meaning infinite wait. A value of 0 is immediate, meaning no wait. Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), or seconds (s). For example, specify 30 seconds as 30s. You can include multiple values in a single entry. For example, 1m30s is equivalent to 90 seconds.

id

string

A unique configuration ID.

maxIdleTime

A period of time with second precision

30m

Amount of time a connection can be unused or idle until it can be discarded during pool maintenance, if doing so does not reduce the pool below the minimum size. A value of -1 disables this timeout. Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), or seconds (s). For example, specify 30 seconds as 30s. You can include multiple values in a single entry. For example, 1m30s is equivalent to 90 seconds.

maxPoolSize

int
Min: 0

50

Maximum number of physical connections for a pool. A value of 0 means unlimited. The optimal setting depends on the application characteristics. For an application in which every thread obtains a connection to the database, you might start with a 1:1 mapping to the `coreThreads` attribute.

minPoolSize

int
Min: 0

Minimum number of physical connections to maintain in the pool. The pool is not pre-populated. Aged timeout can override the minimum.

purgePolicy

  • EntirePool

  • FailingConnectionOnly

  • ValidateAllConnections

EntirePool

Specifies which connections to destroy when a stale connection is detected in a pool.
EntirePool
When a stale connection is detected, all connections in the pool are marked stale, and when no longer in use, are closed.
FailingConnectionOnly
When a stale connection is detected, only the connection which was found to be bad is closed.
ValidateAllConnections
When a stale connection is detected, connections are tested and those found to be bad are closed.

reapTime

A period of time with second precision

3m

Amount of time between runs of the pool maintenance thread. A value of -1 disables pool maintenance. Specify a positive integer followed by a unit of time, which can be hours (h), minutes (m), or seconds (s). For example, specify 30 seconds as 30s. You can include multiple values in a single entry. For example, 1m30s is equivalent to 90 seconds.

Advanced Properties

autoCloseConnections

boolean

true

Attempts to clean up after applications that leave connections open after the end of a servlet request, enterprise bean instance, managed executor task, contextual task, or managed completion stage. When an unsharable connection is obtained within one of these application artifacts and remains open when it ends, the container attempts to close the connection handle. The container may also close sharable connections that do not support DissociatableManagedConnection. Applications should always follow the programming model defined by the specification and close connections at the appropriate times rather than relying on the container, even when this option is enabled.

enableContainerAuthForDirectLookups

boolean

false

If set to true, connections use container authentication. If set to false, connections use application authentication.

enableSharingForDirectLookups

boolean

true

If set to true, connections are shared. If set to false, connections are unshared.

maxConnectionsPerThread

int
Min: 0

Limits the number of open connections on each thread.

numConnectionsPerThreadLocal

int
Min: 0

Caches the specified number of connections for each thread. This setting can provide a performance improvement on large multi-core (8+) machines by reserving the specified number of database connections for each thread. For best performance, if you have n applications threads, set the maximum pool connections to at least n times the value of the numConnectionsPerThreadLocal attribute. Use the same credentials for all connection requests. For example, if you use 20 application threads, set the maximum pool connections to 20 or more. If you set the value of numConnectionPerThreadLocal attribute as 2 and you have 20 application threads, set the maximum pool connection to 40 or more. If setting numConnectionsPerThreadLocal does not improve performance due to application connection usage patterns that do not benefit from using numConnectionsPerThreadLocal, remove the attribute from configuration or set the value to 0.