cayenne-user mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
Subject Re: Child Contexts
Date Tue, 21 Sep 2010 23:17:37 GMT
Hey Michael,

How silly of me! Cayenne gives me a even simpler solution for this! Can I
use a Cayenne client on each portlet and create a cayenne server on a
servlet to receive their requests? this way all database communication is
done by the servlet and not by all portlets.

Could I also do this?


> Hi Bruno,
> In a typical deployment to Tomcat/JBoss/etc, you would use JNDI and
> let the container manage the database connections.  It sounds to me
> like you are doing a lot of hot redeploys (not restarting Tomcat) and
> somehow the resources aren't being cleared up correctly for you.  With
> JNDI, the container should manage the database connection externally
> to your hot redeploy.
> JNDI doesn't actually return a DataContext, but it'll return a
> database connection to a DataContext.  And the DataContext will give
> it back to Tomcat's connection pool when done.  There are numerous
> settings for Tomcat on how to manage the database connection pool for
> you.  Usually you would tell it to keep at least 1 open connection
> (minIdle) to the database, but that is configurable by you.  Check the
> Tomcat docs for setting it up.
> mrg
> On Tue, Sep 21, 2010 at 5:07 PM,  <> wrote:
>> I'm using the regular way, through the Cayenne's DataNode XML file. But
>> I
>> am open to suggestions :). I was thinking about configuring a global
>> resource on tomcat using JNDI that would return a DataContext, but i
>> dont
>> know if everytime an application access the resource a new object is
>> created?
>> Thank you
>>> What are you using to provide your DB Connection Pool: JNDI, DBCP, or
>>> Cayenne?  What version of Cayenne are you using?
>>> mrg
>>> On Tue, Sep 21, 2010 at 3:03 PM,  <> wrote:
>>>> Hey Michael and Robert,
>>>> Ok so i got the difference between context and connection. So how can
>>>> i
>>>> close all connections before closing an application, a servlet or a
>>>> portlet? My main problem here is that on each deploy of a new web
>>>> application the connections from former deployments stay on (like
>>>> memory
>>>> leaks), and i need to close them or at least use one pool for the
>>>> whole
>>>> site.
>>>> I was thinking about putting the Context on the HTTPSession of the
>>>> application server or making a context that is used permanently by the
>>>> server... Any ideas how to do it on liferay or tomcat?
>>>> Thank you
>>>> Bruno
>>>>> Hi Bruno,
>>>>> The Child DataContext *might* share the same database connection as
>>>>> the Parent DataContext.  In general, you don't care about this,
>>>>> though.  The DataContext, on commitChanges(), will request a database
>>>>> connection, use that connection for performing the commit, then
>>>>> return
>>>>> the connection back to the pool.  It isn't required that the same
>>>>> database connection be used between a performQuery() and a
>>>>> commitChanges().
>>>>> If you do commitChanges() on a Child DataContext, it pushes the
>>>>> changes to the Parent DataContext and to the database.  If you only
>>>>> want the changes to go to the Parent DataContext and *not* the
>>>>> database, use commitChangesToParent().
>>>>> mrg
>>>>> On Tue, Sep 21, 2010 at 2:22 PM,  <> wrote:
>>>>>> Hello all,
>>>>>> Do Child Contexts share the connection of a parent connection? When
>>>>>> i
>>>>>> do
>>>>>> a
>>>>>> commitChanges on the child the change is made on the database or
>>>>>> the
>>>>>> parent? I have already read the Nested Contexts page on the User
>>>>>> Guide
>>>>>> but
>>>>>> this detail was confusing for me.
>>>>>> Thank you
>>>>>> Bruno

View raw message