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 <jfbaldwi..arthlink.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 <jfbaldwi..arthlink.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 <jfbaldwi..arthlink.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
>>>>>
>>>>>
>>>
>>>
>
>
>
This archive was generated by hypermail 2.0.0 : Fri Apr 16 2010 - 18:08:59 EDT