Selon la spécification jdbc 4.0 (12.2) :les sources de données XA produisent des connexions XA pouvant être utilisées dans des transactions globales/distribuées. Vous pourriez avoir besoin d'une telle connexion si vous avez besoin qu'une transaction s'étende sur plusieurs bases de données ou un appel JMS. Vous pouvez trouver une explication claire du concept ici :http:// www.theserverside.com/discussions/thread.tss?thread_id=21385#95346
Si vous n'avez pas un tel scénario de transactions distribuées, vous n'avez pas besoin de spécifier une source de données xa, une simple configuration de source de données suffit. Ainsi, si vous utilisez une source de données simple, il n'est pas nécessaire de spécifier une classe xa-datasource lors de la déclaration de votre pilote.
<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>