[Yanel-dev] [Fwd: Re: Session Handling in WebApplication]
Michael Wechner
michael.wechner at wyona.com
Tue Sep 9 11:08:37 CEST 2008
Hi
Yes, at some point we should also change this within Yarep/Yanel
"Session Handling -- a JCR session is obtained by providing credentials
to the Repository implementation. Also, the methods on it are not
thread-safe. The easiest approach for using in a Web Application thus is
to instantiate a new JCR session for each HTTP request. This is also the
approach used by the Jackrabbit WebDAV servlet. It is not expected that
this affects performance negatively; session instatiation should be
cheap. If this assumption turns out to be wrong, session pooling should
be considered."
Cheers
Michi
-------- Original-Nachricht --------
Betreff: Re: Session Handling in WebApplication
Datum: Tue, 9 Sep 2008 09:38:30 +0200
Von: Alexander Klimetschek <aklimets at day.com>
Antwort an: users at jackrabbit.apache.org
An: users at jackrabbit.apache.org
Referenzen: <0E46E3619326224CB40CC30C2E36364E038F8DA1 at zde008.lenze.com>
Hi,
Michael's answer is right, typically you bound one session to one
request. Creating a session, especially with an embedded repository,
is very fast. But note that there is no automatic mechanism against
concurrent changes from two parallel sessions. Normally the second
update wins (if there is no conflict). You can use locking for
synchronization or versioning (see the JCR spec [1]). And in most
cases, a clear content structure [2] will help in avoiding conflicts
in most cases.
Regards,
Alex
[1] http://jcp.org/en/jsr/detail?id=170
[2] http://wiki.apache.org/jackrabbit/DavidsModel
On Tue, Sep 9, 2008 at 7:35 AM, Krohne, Frank - ENCOWAY
<krohne at encoway.de> wrote:
> Hi,
>
>
>
> we are developing web applications and now want to use jackrabbit as
> contend repository.
>
>
>
> So the question is, what is the preferred way to handle the jackrabbit
> sessions in an web application.
>
> When to open a new session and when to close the session and when to
> write (save) contend to it and to be sure other users don't have
> modified the nodes another user is modifying at the moment?
>
> Should we open a new session on every request or share a session on the
> same http session?
>
> Are the jackrabbit sessions thread safe?
>
> If we bind the sessions to our own users (self implemented user
> management) what is the best way to know when to close the jackrabbit
> session if the user doesn't log out or has multiple http sessions open?
>
>
>
> So we are new to jackrabbit and the docs about are rare to this topic (I
> think).
>
>
>
> It would be great to get some hints or tips on how to handle jackrabbit
> sessions in a web application.
>
>
>
> Thanks in advance
>
>
>
> Frank
>
>
--
Alexander Klimetschek
alexander.klimetschek at day.com
More information about the Yanel-development
mailing list