You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@jackrabbit.apache.org by Magnus Grimsell <ma...@idainfront.se> on 2006/10/06 13:48:49 UTC

FW: jta transaction without using jca

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.

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:magnus.grimsell@idainfront.se]
> 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
> magnus.grimsell@idainfront.se
> 

Re: FW: jta transaction without using jca

Posted by Stefan Guggisberg <st...@gmail.com>.
On 10/6/06, Magnus Grimsell <ma...@idainfront.se> 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:magnus.grimsell@idainfront.se]
> > 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
> > magnus.grimsell@idainfront.se
> >
>