Hi!
Alfresco's JCR implementation only allows one session per thread.
I think Alfresco stores the session stuff in a Thread Local variable (at
least using web services), so there can be only one active session at a
time per thread. However, what does prevent you from simply creating a
new one overriding the old (which is then lost of course)? Does it throw
an exception? On the other hand:
2) And is there a good reason not to change James IMAP's JCR implementation to
re-use JCR sessions rather than create new ones for a given client?
Sessions contain transactions, so if one mailbox is accessed from
several clients simultaneously, we need one session for each client.
Using the global mailbox/manager there is definitely a need for creating
several sessions, unless I'm mistaken. Each IMAP request needs its own
transaction, hence sessions cannot be shared.
Within one single request I think we don't need several sessions. The
JCR sessions should simply be stored in the James sessions. So
"getSession" in Mailbox and MailboxManager would need to be slightly
adjusted.
Would it be worth discussing where James IMAP is going in the near-term and
whether we should coordinate.
You are totally right. I'd be glad if we could find a good design for
IMAP and implement it as soon as possible, not least because my maildir
implementation will be affected by this process. I'd like to build on a
relatively stable structure. That would, by the way, be my only
objection to releasing James too soon. First we should stabilize the
IMAP stuff.
Regards
Tim
---------------------------------------------------------------------
To unsubscribe, e-mail: [email protected]
For additional commands, e-mail: [email protected]