Според спецификацията на jdbc 4.0 (12.2):XA източници на данни създават XA връзки, които могат да се използват в глобални/разпределени транзакции. Може да се нуждаете от такава връзка, ако имате нужда от транзакция, която да обхваща повече от една база данни или JMS повиквания. Можете да намерите ясно обяснение на концепцията тук:http:// www.theserverside.com/discussions/thread.tss?thread_id=21385#95346
Ако нямате такъв сценарий за разпределени транзакции, не е необходимо да указвате xa-източник на данни, достатъчна е проста конфигурация на източник на данни. Така че, ако използвате прост източник на данни, няма нужда да посочвате xa-datasource-class, когато декларирате своя драйвер.
<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>