Internal connection pools for relational databases
An internal connection pool is automatically used by OpenWGA to communicate with content stores on relational database servers. This happens any time no external connection pool is explictly chosen and OpenWGA supports using connection pools on the database server.
Internal connection pools are supported for all major database platforms. OpenWGA uses Commons DBCP for providing connection pools on:
- Microsoft SQLServer
- IBM DB2
Normally OpenWGA creates a single connection pool for every web application / data source that accesses a database server. Each is configured to:
- Allow 100 parallel connections at maximum (hibernate.dbcp.maxActive)
- Allow 10 idle connections at maximum (hibernate.dbcp.maxIdle)
Shared server connection pools
A shared server connection pool is a pool created for a database server that is configured for OpenWGA, rather than for a single web app / data source. If a server provides such a pool then all web apps and datasources will use this shared pool for their connections.
The advantage of such a shared pool lies in the fact that an absolute maximum of connections to this server can be configured for OpenWGA to use, lower total number of connections for systems with many web apps having high traffic and in generally reduced management overhead.
OpenWGA supports the usage of shared server connection pools for two platforms:
- Microsoft SQLServer
You can enable a shared connection pool in the server configuration in OpenWGA admin client. There is a checkbox to enable it on every server configuration supporting such a pool:
Once enable you can also configure the metrics of the connection pool:
- Max connections: The maximum number of connections that OpenWGA may use for this server at one time
- Max idle connections: The maximum number of connections that may remain idle (=unused) at one time. When a connection is built, used and then released it may remain in the pool if it does not already contain this number of idle connections. Every minute ten of these existing idle connections may get closed if they weren't used, down to the number of "Min idle connections".
- Min idle connections: The minimum number of connections that should stay in the pool while being idle. OpenWGA will always keep this number of connections idle in the pool to quickly react on traffic.
Other custom DBCP configuration settings may be tweaked by setting a custom option of name "hibernate.dbcp." + option name to the server configuration.
Monitoring connection pools
OpenWGA exposes the metrics of internal DBCP connection pools to the JMX management interface. You find then under custom MBeans, Path "de.innovationgate.WGAMonitor, DBCP-Connection-Pooling". Pools for applications and servers are display separately.
The following is an example of DBCP connection pool metrics displayed via VisualVM (with installed MBeans plugin):