On Wed, Dec 7, 2011 at 11:27 AM, Cameron, Scott <scott.came...@sap.com> wrote:
> Hi,
>
> I'm considering using either SharedPoolDataSource or PerUserPoolDataSource to 
> do some connection pooling but I've noticed that there doesn't seem to be any 
> way to configure an upper bound on the total number of connections in the 
> pool across all users.

What do you mean, "across all users"? Do you have different connection
strings (user/pass) for each person who connects to your database?

> For example, say I have 5,000 named users in my database.  Any of the 5,000 
> can come in to request a DB connection at any time, but likely no more than, 
> say, 100 of them will ever be active at a particular point in time.  If I 
> want to allow 3 connections per user, how do I ensure that I'm not eventually 
> going to end up with 15,000 open connection over time.
>
> It looks like the "maxTotal" setting on the GenericObjectPool (and 
> GenericKeyedObjectPool) can be used to control this such that when this 
> absolute upper bound is reached on the pool the least recently used 15% of 
> connections will be recycled.  But neither SharedPoolDataSource nor 
> PerUserPoolDataSource expose any way to configure maxTotal.
>
> Is there another recommended way to solve this problem?  What do high-traffic 
> web containers like Tomcat or JBoss do to deal with this scenario (if they do 
> deal with it)?

Do I understand correctly, if I show up to your site as user wspeirs,
then I'm connecting to your database as wspeirs? If so, then why
wouldn't you simply create a connection for that user and store it in
the user's session? When the session is destroyed, you close the
connection. There is a bit more "start-up" time in creating the
connection when they first show up, but it'll be live and active
during the rest of the time they are there.

That work for you?

Bill-

---------------------------------------------------------------------
To unsubscribe, e-mail: user-unsubscr...@commons.apache.org
For additional commands, e-mail: user-h...@commons.apache.org

Reply via email to