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

我一直在看几个在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>

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

当我在Tomcat上配置数据源之前,不需要为任何数据库指定xa-datasource。为什么这里不一样?

谢谢

参考方案

根据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>

Java中的<<或>>>是什么意思? - java

This question already has answers here: Closed 7 years ago. Possible Duplicate: What does >> and >>> mean in Java?我在一些Java代码中遇到了一些陌生的符号,尽管代码可以正确编译和运行,但对于括号在此代码中的作用却感…

菱形运算符<>是否等于<?> - java

我在util.TreeSet类中发现,其中一个构造函数正在使用具有空泛型类型的新TreeMap调用另一个构造函数。 public TreeSet(Comparator<? super E> comparator) { this(new TreeMap<>(comparator)); } new TreeMap<>是什么意思…

通过Maven编译器插件不会发生有限的包含和排除 - java

我正在使用3.6.0版的maven编译器插件,在此我们只想在特定文件夹中编译一个文件,而在该位置编译所有其他文件。例如:在文件夹应用程序中有14个文件,从那我只希望编译1个文件,但它编译了所有文件,如果我要排除,则它也不起作用。 <sourceDirectory>${basedir}/../src/java</sourceDirectory…

休眠映射<键,设置<值>> - java

我有以下表格:@Entity @Table(name = "events") Event --id --name @Entity @Table(name = "state") State --id --name @Entity @Table(name = "action") Action --id …

与哪些运算符>>兼容 - java

我这里没有什么代码int b=3; b=b >> 1; System.out.println(b); 它可以完美工作,但是当我将变量b更改为byte,short,float,double时,它包含错误,但是对于变量int和long来说,它可以完美工作,为什么它不能与其他变量一起工作? 参考方案 位移位运算符(例如>>)与任何整数类型兼…