I generally use a new DataContext per thread, with a Filter
binding the DataContext to request thread.
I think at some point we should update the docs for 3.0 with
information discussing 3 main patterns with all drawbacks and
benefits. Here is a short summary:
* OC per request
- no synchronization issues, smallest memory footprint
- some overhead in creating a new DataContext on every request
- no "local" caching (can be good or bad depending on the app)
- no uncommitted state is allowed between requests
* OC per session:
- Potential synchronization issues on update (if the same user
clicks too fast). Possible solution - nested DataContexts per
request working off of a single session context. Another solution is
synchronization of action methods.
- efficient local cache
- uncommitted state can be preserved between requests
OC per app
- applicable for read-only applications (no special
synchronization required in this case)
- very efficient local cache
Andrus
On Sep 23, 2007, at 2:09 PM, Malcolm Edgar wrote:
Hi Florin,
I generally use a new DataContext per thread, with a Filter binding
the DataContext to request thread. Please see the attached example.
regards Malcolm Edgar
http://click.sourceforge.net
On 9/23/07, Florin T.PATRASCU <[EMAIL PROTECTED]> wrote: Hi
there,
I am trying to add Cayenne support to the JPublish web framework
( http://code.google.com/p/jpublish/) and being very new to Cayenne I
would like, if possible, to find which is the best practice for
obtaining and using the OC?
I browsed the threads here and most of the information I have show
that one of the most common solution is to use the HttpSession.
That's clear and I can do that very easy, but I wonder if there is a
better way because I would like to use Cayenne for session-less
requests as well. So, would it be prohibitive to create an OC for
every HttpRequest? aka:
ObjectContext oc = DataContext.createDataContext();
If not, would this pattern affect the server stability (memory,
handlers, threads, db pools, etc.)? What about having a global OC
instance per application?
Also, is it safe to start developing on top of the Cayenne 3.x
version?
Being my first post on this forum, I would like to thank Cayenne's
creators for making it available and to you, the users, for the
useful information accumulated in this forum during the time.
Thank you,
-florin