De acuerdo con la especificación jdbc 4.0 (12.2):las fuentes de datos XA producen conexiones XA que se pueden usar en transacciones globales/distribuidas. Es posible que necesite una conexión de este tipo si necesita una transacción para abarcar más de una base de datos o llamadas JMS. Puede encontrar una explicación clara del concepto aquí:http:// www.theserverside.com/discussions/thread.tss?thread_id=21385#95346
Si no tiene un escenario de transacciones tan distribuidas, no necesita especificar una fuente de datos xa, una configuración de fuente de datos simple es suficiente. Por lo tanto, si usa una fuente de datos simple, no es necesario especificar una clase de fuente de datos xa cuando declara su controlador.
<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>