Gemäß jdbc 4.0-Spezifikation (12.2):XA-Datenquellen erzeugen XA-Verbindungen, die in globalen/verteilten Transaktionen verwendet werden können. Sie benötigen möglicherweise eine solche Verbindung, wenn Sie eine Transaktion benötigen, die sich über mehr als eine Datenbank oder JMS-Aufrufe erstreckt. Eine klare Erklärung des Konzepts finden Sie hier:http:// www.theserverside.com/discussions/thread.tss?thread_id=21385#95346
Wenn Sie kein solches verteiltes Transaktionsszenario haben, müssen Sie keine xa-Datenquelle angeben, eine einfache Datenquellenkonfiguration reicht aus. Wenn Sie also eine einfache Datenquelle verwenden, müssen Sie keine xa-datasource-class angeben, wenn Sie Ihren Treiber deklarieren.
<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>