XA (Basic JTA Support)
Transactional caches set to "xa" provide support for basic JTA operations. Configuring and using XA does not differ from using local transactions, except that "xa" mode requires a transaction manager and allows the cache to participate in JTA transactions.
Note:
When using XA with an Atomikos transaction Manager, be sure to set com.atomikos.icatch.threaded_2pc=false in the Atomikos configuration. This helps prevent unintended rollbacks due to a bug in the way Atomikos behaves under certain conditions
For example, the following cache is configured for JTA transactions with XA:
<cache name="com.my.package.Foo"
maxEntriesLocalHeap="500"
eternal="false"
copyOnRead="true"
copyOnWrite="true"
consistency="strong"
transactionalMode="xa">
<persistence strategy="distributed"/>
<terracotta />
</cache>
Any other XA resource that could be involved in the transaction, such as a database, must also be configured to be XA compliant.