Connection pool advanced settings
Use this page to specify connection pooling related settings.
This administrative console page is common to a range of resource types: for example, JDBC data sources and JMS queue connection factories. To view this page, the path depends on the type of resource, but generally you select an instance of the resource provider, then an instance of the resource type, then click
.- .
The Connection Pool Partition Support creates buckets and hashes on the buckets for optimizing the connection pool for getConnection method requests. The number of shared partitions, the number of free pool partitions, and the free pool distribution table size are properties that are related to reducing the time a thread must wait for a synchronization lock. On systems with a single processor, these values do not make a difference. On systems with multiple processors, these settings can reduce the performance cost that is associated with managing multiple threads.
When the default values are used, which means that the partitions are set to 0, the connection pool automatically selects the best values. The ability to change the default values is primarily provided for connection pools that exceed 500 maximum connections. When the connection pool exceeds 500 maximum connections, the formula that is used for auto-tuning the connection pool might create large objects whose size you might want to reduce. Performance might be reduced by reducing the partition size. However, that impact is normal when you weigh memory versus performance.
Number of shared partitions
Specifies the number of partitions that are created in each of the shared pools.
Partition support is always enabled. The default values of 0 should be used to enable the connection pool to pick the best values for performance. In some cases where large multiprocessor systems are used, adjusting the partition support properties might help performance.
Information | Value |
---|---|
Data type | integer |
Default value | 0 |
Range | 0 to max int |
Number of free pool partitions
Specifies the number of partitions that are created in each of the free pools.
Information | Value |
---|---|
Data type | integer |
Default value | 0 |
Range | 0 to max int |
Free pool distribution table size
Determines the distribution of Subject and CRI hash values in the table that indexes connection usage data.
These hash values are used to match connection request credentials with the connections. A free pool distribution table size larger than 1 can yield more efficient distribution of hash values, to help minimize search collisions within the table. Fewer collisions can result in faster retrieval of a connection that matches a request. Use a larger value for free pool distribution table size if your resource receives many incoming requests with varying credentials. Smaller values (1) should be used if the same credentials apply to all incoming requests for the resource. The value of 0 means random distribution.
Information | Value |
---|---|
Data type | integer |
Default value | 0 |
Range | 0 to max int |
Surge threshold
Specifies the number of connections created before surge protection is activated.
Surge protection is designed to prevent overloading of a data source when too many connections are created at the same time. Surge protection is controlled by two properties, surge threshold and surge creation interval.
The surge threshold property specifies the number of connections created before surge protection is activated. After you reach the specified number of connections, you enter surge mode.
The surge creation interval property specifies the amount of time, in seconds, between the creation of connections when in surge mode.
- maxConnections = 50
- surgeThreshold = 10
- surgeCreationInterval = 30 seconds
Surge connection support starts if the surge threshold is > -1 and the surge creation interval is > 0. The surge threshold property has a default value of -1, which indicates that it is turned off.
Information | Value |
---|---|
Data type | integer |
Default value | -1 |
Range | -1 to max int |
Surge creation interval
Specifies the amount of time between connection creates when you are in surge protection mode.
When the number of connections specified for the surge threshold property is reached, the surge creation interval property dictates how much time each new connection request must wait before fulfillment.
Information | Value |
---|---|
Data type | integer |
Default value | 0 |
Range | 0 to max int |
Stuck timer interval
A stuck connection is an active connection that is not responding or returning to the connection pool. If the pool is stuck (you have reached the stuck threshold), a resource exception is given to all new connection requests until the pool is unstuck. The stuck timer interval property is the interval for the timer, for example, how often the connection pool checks for stuck connections. The default value is 0 seconds.
If an attempt to change the stuck time, stuck timer interval, or stuck threshold properties using
the wsadmin scripting tool fails, an IllegalState
exception occurs. The pool cannot
have any active requests or active connections during this request. For the stuck connection support
to start, the stuck time and the stuck threshold property values must be greater than 0 and maximum
connections must be greater than 0.
Also, the stuck timer interval, if it is set, must be less than the stuck time value. In fact, it is suggested that the stuck timer interval be one-quarter to one-sixth the value of stuck time so that the connection pool checks for stuck connections 4 - 6 times before a connection is declared stuck. This interval check reduces the likelihood of false positives.
Information | Value |
---|---|
Data type | integer |
Default value | 0 |
Range | 0 to max int |
Stuck time
A stuck connection is an active connection that is not responding or returning to the connection pool. If the pool is stuck (you have reached the stuck threshold), a resource exception is given to all new connection requests until the pool is unstuck. The stuck time property is the interval, in seconds, allowed for a single active connection to be in use to the backend resource before it is considered to be stuck.
Information | Value |
---|---|
Data type | integer |
Default value | 0 |
Range | 0 to max int |
Stuck threshold
A stuck connection is an active connection that is not responding or returning to the connection pool. If the pool is stuck (you have reached the stuck threshold), a resource exception is given to all new connection requests until the pool is unstuck. An application can explicitly catch this exception and continue processing. The pool continues to periodically check for stuck connections when the number of stuck connections is past the threshold. If the amount of stuck connections is less than the stuck threshold, the pool detects this during its periodic checks and enables the pool to begin servicing requests again. The stuck threshold is the number of connections that must be considered stuck for the pool to be in stuck mode.
Information | Value |
---|---|
Data type | integer |
Default value | 0 |
Range | 0 to max int |