With ColdFusion MX 6.1, if a data source is configured to maintain connections and the number of connections are limited (under Advanced Settings in the data source), it may cause the server to hang when trying to get a new connection, particularly if the server is under load.
This is caused by the connection pooling code looping while trying to get a connection. The code loops every 3 seconds to tryto obtain a connection, but this cannot happen for at least the 20 minute default skimmer, resulting in the pool becoming locked and no further connections are able to be obtained. This has been identified as issue 53486. A hot fix is provided in this TechNote to address the issue.
Note: This hot fix addresses the issue for applications which use data sources created within the ColdFusion Administrator, as well as data sources created in the J2EE configuration with WebSphere or WebLogic administrator tools. The hot fix does not resolve the issue for data sources created in the J2EE configuration with JRun when they are created through the JMC (they will appear in the ColdFusion Administrator with a driver type of 'J2EE').
The hot fix makes the following changes to data source pool handling in ColdFusion MX 6.1:
- If the pool is at capacity, a new connection request will replace the oldest idle connection, if there is one.
- The maximum number of connections to a data source is determined by the 'Restrict connections to' value in the Advanced Settings section of the data source. If the maximum number of connections is currently in use, ColdFusion will wait no longer than 10 seconds before returning an error. Once a connection is available, the 'Login Timeout (sec)' setting still determines how long ColdFusion will attempt to establish the new connection.