cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From Mike Kienenberger <mkien...@gmail.com>
Subject Re: Connection Pool
Date Fri, 16 Apr 2010 22:07:53 GMT
Someone more knowledgable would have to comment, but my suspicion is
that the problem is with your database or JDBC driver rather than with
Cayenne.

Perhaps if you describe your database setup (database, version,
anything else relevent), someone might have some additional ideas.

You might also try searching on the SQLException.  Here's one
interesting hit I found:

http://forums.mysql.com/read.php?22,37371,39620#msg-39620


On Fri, Apr 16, 2010 at 5:57 PM, Joe Baldwin <jfbaldwin@earthlink.net> wrote:
> Michael & Andrus,
>
> The DataSource Factory specified in CM is:
>
>        org.apache.cayenne.conf.DriverDataSourceFactory
>
>> I've deployed a long-running (up 24x7) internal application before
>> that had a max of 2 DB connections ...
>
>
> Interesting - I saw one of you examples in which you used min = max = 1.  So this is
not expected behavior at all.
>
> The catalina log reported an exception (just prior to the connection exception)
>
>        java.sql.SQLException: Lock wait timeout exceeded;  (see detail in attached
file)
>
> Is it possible that I have inadvertently configured improper locking?   (Note: I never
explicitly set locking.)
>
> The only theory I can think of at this point is *really* bizarre: is it possible content
editing of one product is locking the entire list of products?  (The ProductDetail class
is a JSP that simply displays a Product.  At the same time, there is content editing going
on.  My expectation would be that there is row-level locking and that this would not interfere
with displaying a row.)
>
> RE open connections (I thought the PoolManager might report that, if my session gets
one auto-magically).
>
> Thanks,
> Joe
>
>
>
>
>
>
>
>
>
>
> On Apr 16, 2010, at 8:57 AM, Michael Gentry wrote:
>
>> Hi Joe,
>>
>> I've deployed a long-running (up 24x7) internal application before
>> that had a max of 2 DB connections using the built-in Cayenne
>> connection pooling mechanism and never had any issues with running out
>> of connections.  The only reason I even used 2 was I had long-running
>> (several minutes) queries in a background thread that might block the
>> interactive portion and make the user wait during those periods, so I
>> basically allocated one to the background thread and one to the user
>> threads.
>>
>> I don't know of a way to report open connections off the top of my
>> head, but I could look into that if needed.
>>
>> mrg
>>
>>
>> On Thu, Apr 15, 2010 at 8:57 AM, Joe Baldwin <jfbaldwin@earthlink.net> wrote:
>>> Hi Michael,
>>>
>>> min = 1
>>> max = 10 (we changed this to 20 but then got the same error)
>>>
>>> To my knowledge there are no long running transactions.  Most are product list
fetches which should take less than a second each.  There is some content editing right now,
so there are about 50-100 updates per day, (which again should take no more than 1 sec per
transaction)
>>>
>>> I have been searching through my code, but can't find anything that seems out
of the ordinary.
>>>
>>> Is there an object available to me that will report open connections?
>>>
>>> Thanks,
>>> Joe
>>>
>>>
>>> On Apr 15, 2010, at 8:18 AM, Michael Gentry wrote:
>>>
>>>> The connections are stored and reused.  What is your min/max setting?
>>>> Do you have any long-running transactions?
>>>>
>>>>
>>>> On Wed, Apr 14, 2010 at 11:34 PM, Joe Baldwin <jfbaldwin@earthlink.net>
wrote:
>>>>> Why would the DataContext be running out of connections in a web app
with only a small amount of traffic?
>>>>>
>>>>> (I thought that a group of connections were stored (base on the modeler
specification), and then reused for each transaction.)
>>>>>
>>>>> Joe
>>>>>
>>>>>
>>>
>>>
>
>
>

Mime
View raw message