Apparently my mail client decided to screw me over ;-) here is the complete msg.

Hi,

I've used a corner of the se-jcr (spring-extensions jcr) library v0.9 to get this going in our application (a horribly old/not maintained library).

Our transactions are driven by the use of @Transactional to allow us to have tests running with transactions.

I ended up not using the OSV pattern for JCR, it gave me more trouble than benefits. Instead I ended up using:

SessionFactoryUtils.getSession() and SessionFactoryUtils.releaseSession() from the spring module, this ensures that the JCR session is registered with the spring transaction synchronization stuff and did not impact my pre-transactional code much.

HTH.
--
Chris

On 05-09-2013 19:51, andreas wrote:

Hello

It seems like the Jackrabbit session commits independently of the other code. I have no idea why.

 

Fra: Chris Poulsen [via Jackrabbit] [mailto:[hidden email]]
Sendt: 5. september 2013 09:49
Til: andreas
Emne: Re: Jackrabbit JCA and JTA

 

Hi,

I don't know about file storing vs. transactions, but I would expect it
to work like any other transactional change to the repository.

Getting the JTA setup correctly can be somewhat of a tricky task - Are
you sure that you are in a transaction in your method (and that you are
in the correct transaction)?

Have you tried adding a simple node in the transaction method to see if
a simple node is rolled back? Also you can usually ask spring and the
JTA provider to produce really detailed logs to help you figure out what
is going on.

HTH.
--
Chris

On 04-09-2013 18:09, andreas wrote:


> Hi
>
> I am developing an application that uses both Jackrabbit and a database. In
> Jackrabbit I store the files that I upload, and the database I store all the
> other data in the app. I am using Spring 3.2, Hibernate 4.x and Jackrabbit
> 2.6.2. I have downloaded the Jackrabbit JCA version and deployed it to JBoss
> 7.1.1. I have configured it correctly I think. I can upload file to it and
> it is saved. I also debugged my application and I saw that the session
> object that invoke save() and logout() on is of type XaSession. I am using
> the datastore.
>
> The way I tested my code is like this: I have one method in the service
> layer of my app annotated with @Transactional. Inside the method I first add
> a file to the content repository, then I force a RunTimeException to be
> thrown (and the code that should run instead of the exception would be to
> save my object to the database through Hibernate). I cleared the datastore
> (no files inside it) but when the exception is thrown the file that I added
> isn't removed from the datastore.
>
> So, is this correct? Does files in datastore stay in the datastore - not
> rolled back? Or should it be removed. I am using the
> <tx:jta-transaction-manager /> annotation in Spring config.
>
> Could someone shed some light over this because I don't understand if I got
> it working, or if I need to do something else to get it working? And where
> does the metadata of the file that I add get stored? I have configured a own
> database for the persistence manager but I don't see anything useful in the
> database tables? There are only a lot of what seems to be binary things
> there? Is there a way to verify if a file is inserted or not in the database
> even though the actual file is stored on disk (datastore)?
>
> Thank you
>
> - Andreas
>
>
>
> --
> View this message in context: click here.
NAML


View this message in context: SV: Jackrabbit JCA and JTA
Sent from the Jackrabbit - Dev mailing list archive at Nabble.com.