MySQL的Jboss数据源配置 - MysqlXADataSource元素

zig*_*ggy 6 java mysql jboss jdbc

我一直在研究在Jboss 7中为MySQL配置数据源的几个例子.我在元素中看到的所有引用都是这样的:

<driver name="com.mysql" module="com.mysql">
    <driver-class>com.mysql.jdbc.Driver</driver-class>
    <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
</driver>
Run Code Online (Sandbox Code Playgroud)

我知道它到底<driver-class>是什么,但究竟是<xa-datasource-class>什么目的呢?

当我在Tomcat上配置数据源之前我不需要为任何数据库指定xa-datasource.为什么它在这里有所不同?

谢谢

dce*_*chi 8

根据jdbc 4.0规范(12.2):XA数据源生成能够在全局/分布式事务中使用的XA连接.如果需要跨越多个数据库或JMS调用的事务,则可能需要此类连接.您可以在此处找到有关此概念的明确说明:http://www.theserverside.com/discussions/thread.tss?thread_id = 21385#95346

如果您没有这样的分布式事务方案,则无需指定xa-datasource,简单的数据源配置就足够了.因此,如果使用简单的数据源,则在声明驱动程序时无需指定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>
Run Code Online (Sandbox Code Playgroud)