Details
-
Improvement
-
Status: Closed
-
Minor
-
Resolution: Fixed
-
1.2
-
None
-
Operating System: All
Platform: All
-
36581
Description
Under most circumstances, an application will have one or two object pools, so
creating a new Evictor thread for each object is fine.
However, in the case of DBCP's PerUserDataSource class, this design is
unacceptable as it creates a thread for every distinct user that uses the data
source. In my case, our system has several thousand concurrent users, and as a
result, the system was attempting to create several thousand Evictor threads.
We fixed this by changing the Evictor from a Thread to a TimerTask which is
scheduled with the Timer class.