Zgodnie ze specyfikacją jdbc 4.0 (12.2):źródła danych XA tworzą połączenia XA, które można wykorzystać w transakcjach globalnych/rozproszonych. Takie połączenie może być potrzebne, jeśli transakcja ma obejmować więcej niż jedną bazę danych lub wywołania JMS. Jasne wyjaśnienie tej koncepcji znajdziesz tutaj:http:// www.theserverside.com/discussions/thread.tss?thread_id=21385#95346
Jeśli nie masz takiego scenariusza transakcji rozproszonych, nie musisz określać źródła danych xa, wystarczy prosta konfiguracja źródła danych. Tak więc, jeśli używasz prostego źródła danych, nie ma potrzeby określania klasy xa-datasource podczas deklarowania sterownika.
<datasources>
<datasource jndi-name="java:/myDatasource" pool-name="MyDS" enabled="true" jta="true" use-java-context="true" use-ccm="true">
<connection-url>
jdbc:mysql://localhost:3306/mydb
</connection-url>
<driver>
mysql
</driver>
<transaction-isolation>
TRANSACTION_READ_COMMITTED
</transaction-isolation>
<pool>
<min-pool-size>
5
</min-pool-size>
<max-pool-size>
10
</max-pool-size>
<prefill>
true
</prefill>
<use-strict-min>
false
</use-strict-min>
<flush-strategy>
FailingConnectionOnly
</flush-strategy>
</pool>
<security>
<user-name>
username
</user-name>
<password>
password
</password>
</security>
</datasource>
<drivers>
<driver name="mysql" module="com.mysql"/>
</drivers>
</datasources>