cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Kienenberger <>
Subject Re: java.sql.SQLException: Can't obtain connection. Request timed out.
Date Thu, 11 Jun 2015 15:41:16 GMT
So what I had when I originally deployed would have been three pools
of one connection each?   That's fine.  And that explains why it
worked without problems.

So when I increased to 3 connections, I actually have 9 now, three in
each of the three pools which I definitely do not want.

So apparently I only hit this problem in a single runtime's connection
pool, and not in all of them.   That should make it easier to track
down what caused it.   Thanks.

On Thu, Jun 11, 2015 at 11:32 AM, Andrus Adamchik
<> wrote:
>> My guess is that all three runtimes share the same pool
> Actually no. If you have 3 runtimes, and let Cayenne instantiate its pool (as the stack
trace implies) instead of using say container JNDI DataSource, you should have 3 instances
of the pool. You can try confirming the number of PoolManager instances with VisualVM or jmap.
> Andrus
>> On Jun 11, 2015, at 6:18 PM, Mike Kienenberger <> wrote:
>> So I finally put my old Cayenne 1.x-upgraded to 3.x app into production.
>> A couple of hours later, I got this error [1].   Note that my app
>> synchronizes requests so only one thread should ever be running
>> Cayenne requests at a time.
>> My app has run for years with only a single connection.   My 3.x app
>> ran in development for a year before it was deployed to production.
>> Is this a fluke?   I did raise my connection pool to 3 the next day,
>> but I don't want to arbitrarily assign a higher number and think I've
>> magically solved the problem.
>> Does having three active server runtimes affect this?   Before, my
>> query qualifiers were all handled inside the main runtime, but now I
>> have three separate runtimes configured.   My guess is that all three
>> runtimes share the same pool, so this is probably not the cause.   And
>> since the problem happened a couple hours later and the three runtimes
>> were being used well before that without an error, I'd say experience
>> bears this out.
>> [1]
>> Caused by: java.sql.SQLException: Can't obtain connection. Request
>> timed out. Total used connections: 1
>>        at org.apache.cayenne.conn.PoolManager.uncheckPooledConnection(
>>        at org.apache.cayenne.conn.PoolManager.getConnection(
>>        at org.apache.cayenne.conn.PoolManager.getConnection(
>>        at org.apache.cayenne.access.DataNode$TransactionDataSource.getConnection(
>>        at org.apache.cayenne.access.DataNode.performQueries(

View raw message