All major and minor application server vendors heavily advertise the
connection pooling functionality of their respective offerings. In this
article I examine what's involved in developing resource pooling features
from the perspective of a Java developer. I feel the subject is both greatly
overhyped and underrepresented in technical literature.
The Problem
First, I'll try to describe the problem in very general terms. I'll rely more
on practical considerations rather than scientific completeness: A set of
resources has one common characteristic: there's a limited supply. Usually
the supply limitation isn't related to the scarcity of the resource, but to
the difficulty of obtaining it. For example, it's possible to open a database
connection for each query, but it's a time-consuming operation. It's assumed
that these resources will be needed by different parts of an ... (more)