According to the Java connector specification, an application server may choose to use a LocalTransaction rather than an XATransaction if it determines that an XATransaction is not needed. Jackrabbit's connector code supports XA transactions but throws an exception if the server requests a LocalTransaction. The JCA code should be able to support LocalTransaction which could be easily mapped internally to calls to the XAResource interface.
I get this problem when I deploy on Websphere 5.1 or WebSphere 6, specifying XATransaction in the ra.xml file - in normal usage Websphere tries to obtain a LocalTransaction resulting in the exception:
[17/04/07 15:32:58:887 BST] 57053d6b LocalTransact E J2CA0077E: An exception was caught
while trying to obtain a javax.resource.cci.LocalTransaction from a ManagedConnection for
resource jcr/local. The exception is: java.lang.UnsupportedOperationException: Local transaction
is not supported
My only workaround at present is to specify NoTransaction, but that may not be a good solution for many people.
See post on jackrabbit users group from Wed, 18 Apr, 13:16 by Dominique Pfister.