You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by Giota Karadimitriou <Gi...@eurodyn.com> on 2006/03/07 18:18:27 UTC

RE: Beginners JTA question

By making jackrabbit a resource adapter, the transactions are handled by
the application server. At the end of the transaction, the application
server persists the changes to the database (or filesystem). 
 
In this context, where should I close the session (perform
session.logout?).
Is session.logout automatically done by the application server at the
end of the transaction? 

If not, I have a problem because I have no idea where to perform
session.logout since my transactional method could be called by another
transactional method and so on. I have no way of finding out where the
transaction really ends since for example one session bean might call or
extend some other etc.

On the other hand if I never perform session.logout (like I do now) I am
afraid all these sessions might create problems in my application. 

To sum up, the question is:

Does the application server perform session.logout(dispose session)
after the end of a transaction (when using jackrabbit as a resource
adapter)? If not how/where should session.logout be done?

Regards
Giota

> -----Original Message-----
> From: dominique.pfister@gmail.com [mailto:dominique.pfister@gmail.com]
> On Behalf Of Dominique Pfister
> Sent: Thursday, January 12, 2006 9:43 AM
> To: jackrabbit-dev@incubator.apache.org
> Subject: Re: Beginners JTA question
>
> Hi Kevin,
>
> The UserTransactionImpl in Jackrabbit is used solely for testing
> purposes, where you usually don't have an application server within
> reach, sorry, if this is confusing.
>
> In order to make Jackrabbit work as an XA resource, you have to make
> it available as a resource adapter (RA) in your application server.
> There is a contribution named jca in the contrib directory that
> packages jackrabbit into a deployable RAR (resource adapter archive).
>
> For BEA, you'll probably want to add a weblogic-ra.xml to the RAR's
> META-INF folder that specifies the JNDI name where your RA will be
> made available to applications. Finally, your web application will
> need a resource-ref entry that has to be linked to the RA's JNDI name.
> If you then reference this resource in your code:
>
> Repository rep = (Repository) new
> InitialContext().lookup("java:comp/env/jackrabbit");
>
> it will automatically be enlisted as an XAResource in BEA's
> UserTransaction.
>
> Cheers
> Dominique
>
> On 1/11/06, Kevin Wiggen <kw...@xythos.com> wrote:
> > Sorry if this question is a newbie to JTA question, but I have been
> > looking at the jackrabbit code and I can't figure the following out.
> >
> >
> >
> > I want to use Jackrabbit in my BEA container and use JTA to
coordinate
> > the transaction with Jackrabbit and my other JTA transactional
> > resources.  The other resources already are plugged into the BEA
world
> > and code uses the BEA UserTransaction to coordinate the interaction
> > between these resources.
> >
> >
> >
> > The short question is how do I wire up Jackrabbit to work in this
> world?
> >
> >
> >
> > From what I see (and I can be completely looking in the wrong spot),
> > Jackrabbit uses XASessionImpl to appear as a XAResource, and I see
in
> > XATest how the Jackrabbit UserTransactionImpl is used to get a
> > Jackrabbit specific UserTransaction, but I already have my own
> > UserTransaction (well BEA's).
> >
> >
> >
> > Am I missing something obvious?  I just don't see how I can get
> > Jackrabbit to play in my UserTransaction world....
> >
> >
> >
> > Thanks for the help,
> >
> > Kevin
> >
> >
> >
>
>
>