Reducing JDBC connection pool sizes using reserve pool
normally require enough JDBC connections in the
JDBC connection pool so that no threads need to wait for a connection. However, a iFeature allows to run with smaller JDBC connection pools.
The iFeature defines and uses a reserve pool of JDBC connections. Large deployments with more than 100 application servers might benefit from the reserve
pool because the reserve pool can reduce the database resource consumption associated with large
numbers of JDBC connections.
Before you begin
- Apply feature FEF013660, which is available from customer support, or install fix pack 7.0.0.25 or later to your instance.
- Apply the interim fix for APAR JR43306.
Procedure
-
Enable preallocation of a JDBC connection for each thread that
requires a database connection.
Add the following configuration to the
<InstanceProperties>element of the configuration file:
For more information about the configuration file, see configuration file (wc-server.xml).<com.ibm.commerce.server.TransactionManager preFetchJDBCConnection="true" /> -
Define a reserve pool.
Use the administration console to define a connection pool custom property. Use the name
numberOfPoolReservesfor the custom property and set the value of the property to 1. -
Determine the pool size that is appropriate for your environment.
Run performance tests with simulated workloads, measuring throughput and response times. Start with the number of JDBC connections you derive from the instructions for determining the data source connection pool size. From that starting point, run further performance tests, gradually reducing the connection pool size. Eventually you will see a performance degradation. When that happens, increase the pool size (for example, by 10% or 20%) to allow for peak load fluctuations.