Ari,
thanks for the YourKit suggestion.
> Also, consider a common approach is to have one 'read-only' [1]
> shared context which persists for the life of the application and is
> used to show data (products, etc) to users. Then a small context
> created per session which contains just the objects which that user
> is modifying (invoice, invoice lines, payment, contact, etc) within
> the session. Certainly that isn't the only approach, but it is
> pretty common.
That is pretty much what I was wanting to do (after listening to all
the input). However, I am not sure how to implement this design in a
webapp with session and a Cayenne filter that is creating the
DataContext for me (automagically as they say).
I suspect if I implement this sort of simple design (as about 95% of
the result sets will be "read-only"), I could probably manage the
memory much better.
So how do I create a shared context? Is this going to be associated
with an Application scoped singleton? Also how do I create the smaller
contexts and make sure they are GC'd after the session is terminated?
Thanks for the input,
Joe
On Sep 17, 2009, at 11:53 PM, Aristedes Maniatis wrote:
> To remove some of the black magic can I suggest a tool like YourKit?
> It is very helpful for figuring out where all your memory goes.
>
> Also, consider a common approach is to have one 'read-only' [1]
> shared context which persists for the life of the application and is
> used to show data (products, etc) to users. Then a small context
> created per session which contains just the objects which that user
> is modifying (invoice, invoice lines, payment, contact, etc) within
> the session. Certainly that isn't the only approach, but it is
> pretty common.
>
> Ari Maniatis
>
>
> [1] There is no such thing as a 'read-only' context in Cayenne. Read-
> only just describes the way you use it.
>
>
>
> On 18/09/09 4:53 AM, Michael Gentry wrote:
>> That's probably bigger than you want. Try 500 just to see how it
>> works. Adjusting that number is black magic. :-)
>>
>>
>> On Thu, Sep 17, 2009 at 2:40 PM, Joe
>> Baldwin<jfbaldwi..arthlink.net> wrote:
>>> Michael
>>>
>>>> What is the size of your object cache? Look under the
>>>> DataDomain. If
>>>> it is a large number, try lowering it.
>>>
>>>
>>> Query Cache Factory: org.apache.cayenne.cache.MapQueryCacheFactory
>>> Size of Object Cache: 10000
>>> Use Shared Cache: checked
>>>
>>> I do not know if 10,000 is small, medium, or large.
>>>
>>> What do you recommend?
>>>
>>> Joe
>>>
>>>
>
> --
>
> -------------------------->
> Aristedes Maniatis
> GPG fingerprint CBFB 84B4 738D 4E87 5E5C 5EFA EF6A 7D2E 3E49 102A
This archive was generated by hypermail 2.0.0 : Fri Sep 18 2009 - 00:11:32 EDT