I have two questions about Jackrabbit and tx handling. 1) Using Jackrabbit deployed as resource adapter (JCA) and using a BundlePersistenceManager, I wonder if it is XA compliant:
The persistence manager BundleDbPersistenceManager invokes setAutoCommit() and commit() on the db connection in the store(ChangeLog) method. This is illegal for managed connections (JTA and XA), right? So what is the right PM/FS for JCA when I want XA? Is it possible at all? 2) I wonder if the current Jackrabbit impl. is specification conform. I see a conflict with the JCR spec, chapter 8.1 about TXs and JCR implementations: "A compliant content repository may support transactions. If it does so, it must adhere to the Java Transaction API (JTA) specification (see http://java.sun.com/products/jta/index.html). Whether a particular implementation supports transactions can be determined by querying the repository descriptor table with Repository.getDescriptor("OPTION_TRANSACTIONS_SUPPORTED")" The return value of session.getRepository().getDescriptor("option.transactions.supported") is true, but no JTA is used (again, look at the persistence manager implementations like BundlePersistenceManager, where TX operations are performed directly on the database connection instead handled by a transaction manager). I'm really confused ... did I misunderstand the JCR Spec and JTA/XA? Thanks, Marcel
