Thanks for your quick reply.

In what way does it violate the contract?
Should the PersistenceManager suspend the ongoing transaction and start it's 
own?

> -----Original Message-----
> From: Stefan Guggisberg [mailto:[EMAIL PROTECTED]
> Sent: Friday, October 06, 2006 2:02 PM
> To: dev@jackrabbit.apache.org
> Subject: Re: FW: jta transaction without using jca
> 
> 
> On 10/6/06, Magnus Grimsell <[EMAIL PROTECTED]> wrote:
> > I sent this to the user list but didn't get any response so 
> I try the dev list :)
> >
> > I rewrote JNDIDatabasePersistenceManager a little bit so it 
> doesn't do it's own commits.
> > This works fine and persistence manager and file system now 
> participates in the gloabl transaction.
> > If there is any interest I can send a patch with this 
> behaviour optional.
> 
> this behaviour does violate the contract of the 
> PersistenceManager interface and
> almost certainly leads to inconsistent internal repository state when
> such a global transaction is rolled back.
> 
> cheers
> stefan
> 
> >
> > I guess the problem left is the search index which is 
> stored on disc. I've used Compass in a recent project
> > and it stores the lucene index in the database. Is there 
> any plans for jackrabbit to support that too?
> >
> > /Magnus
> >
> > > -----Original Message-----
> > > From: Magnus Grimsell [mailto:[EMAIL PROTECTED]
> > > Sent: Monday, October 02, 2006 11:03 AM
> > > To: users@jackrabbit.apache.org
> > > Subject: jta transaction without using jca
> > >
> > >
> > > I would like to configure jackrabbit with db based file
> > > system and persistence manager that participates in the
> > > ongoing jta transaction.
> > > I tried out the JNDIDatabasePersistenceManager but since it
> > > does explicit commits i ran into trouble.
> > >
> > > Caused by: java.sql.SQLException: The method 'commit' cant be
> > > called when a global transaction is active.
> > >       at
> > > oracle.oc4j.sql.spi.ConnectionHandle.oc4j_throwSQLExceptionIfG
> > > lobalTxActive(ConnectionHandle.java:407)
> > >       at
> > > 
> oracle.oc4j.sql.spi.ConnectionHandle.commit(ConnectionHandle.java:122)
> > >       at
> > > org.apache.jackrabbit.core.state.db.DatabasePersistenceManager
> > > .store(DatabasePersistenceManager.java:339)
> > >
> > > I've read that you are supposed to use JCA to enable
> > > jackrabbit to participate in JTA transactions. However, since
> > > our product must
> > > work on a bunch of different application servers I'm a little
> > > hesitant to introduce this new requirement.
> > >
> > > Has anybody used JTA and jackrabbit without using JCA?
> > >
> > > Magnus Grimsell
> > > [EMAIL PROTECTED]
> > >
> >
> 

Reply via email to