views:

29

answers:

2

I'm trying to extend Clojure to add durability to refs in a way that allows users to choose which data store instances to persist to. That requires distributed transactions. Are there any really lightweight, in-process distributed transaction managers, supporting XA, for Java? If not, and I have to roll my own, are there any good resources explaining what a distributed transaction coordinator has to support? Specifically, I'm having trouble understanding what the semantics of the 3 parts of an XID are really supposed to be. As an initial implementation, I'm using BDB JE.

+1  A: 

I know these two:

  • Bitronix: This is the one we are using currently, it seems to work OK and it is easy to configure.

  • Atomikos: We have tried this, but it is a little harder to configure than Bitronix, and it has some hardcoded dependencies to java.util.logging which we did not want. It should more feature-complete than Bitronix as it is an open source version of a commercially supported product.

gpeche
I should have been clearer and specified that the DB would be in the same process as well. Unfortunately these solutions only support JDBC. Looks like I'll have to roll my own. Thanks!
entaroadun
Look at http://db.apache.org/derby/papers/DerbyTut/embedded_intro.html
gpeche
A: 

http://www.atomikos.com should do what you are looking for...

Guy Pardon