Hello Alex,
On Thu, Jan 22, 2009 at 01:58:14PM +0100, Alexander Klimetschek wrote:
> On Thu, Jan 22, 2009 at 2:16 AM, Moritz Rebbert <[email protected]>
> wrote:
> > }finally{
> > session.logout();
> > }
>
> Not sure, but I think the session.logout() could be a harm, because it
> will eventually happen before the transaction commit. Try to comment
> it out and see what happens.
But where else should i put the session.logout()?
Is it implictly called by the commit of the underlying XAResource?
I think i have done this before, but ran into the problem that the
session pool ran out of session or sth. like that.
But i will try it and give a feedback soon.
In my opinion this leads considerations:
If the session.logout() should be placed after the sessions commits,
shouldn't the login be call also before the transaction starts?
Like that:
session = repository.login();
createFolder("foo",session);
session.logout();
and
@TransactionAttribute(TransactionAttributeType.REQUIRES_NEW)
void createFolder(String str, Session session){
session.getRootNode(str,"nt:folder");
session.save();
}
I have done this, but than the session won't be internaly enlisted to
the Transaction. The enlistment is only called within the
repository.login().
And so it is not allowed to use a session in more than one Transaction,
isn't it?
Regards
Moritz