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

Reply via email to