Ticket #220 (closed defect: duplicate)
Resource Pooling Does Not Release Instances In All Situations
| Reported by: | MaestroFJP | Owned by: | joe.rinehart |
|---|---|---|---|
| Priority: | high | Milestone: | |
| Version: | 2.0.304 | Severity: | critical |
| Keywords: | SizedPool resource pool | Cc: |
Description
In particular situations, a pooled instance doesn't get released back to the resource pool. This causes the available number of instances to drop in the SizedPool?, however the pool is unable to create more resources because it reaches it maximum. This can cause strange errors to occur as requests wait for available instances to be released.
It appears that pooled instances do not get released during a forward in which the developer only uses url params (doesn't persist the event in the session scope) and when developer utilitizes cflocation, cfabort, cfcontent or cferror. Since the framework doesn't get an opportunity to release the instance back to the pool, the resource is abandoned and causes resource "cesspooling". This behavior needs to be verified (although I believe Jeff Houser's post to the list confirms this defect).
The fix is to create a public method that allows developers to manually release the instance back to the pool before any tag that performs some sort of flush or ends the request earlier. Also, the forward should release the instance before fowarding when not using the session persist method.
![(please configure the [header_logo] section in trac.ini)](/ModelGlue.com/trac.cgi/chrome/site/your_project_logo.png)