如何为JBoss7数据源配置MySQL ReplicationDriver?

如何为JBoss7数据源配置MySQL ReplicationDriver?,mysql,jdbc,jboss,jboss7.x,database-replication,Mysql,Jdbc,Jboss,Jboss7.x,Database Replication,我们使用的是MySql 5.5.37和JBoss 7.1.3,以及MySql-connector-java-5.1.22-bin.jar。如何配置JBoss的standalone.xml数据源以连接到MySQL的主从配置?我试过下面的方法 <datasource jndi-name="java:jboss/datasources/MySqlDS" pool-name="MySqlDS" enabled="true" use-java-context="true"&g

我们使用的是MySql 5.5.37和JBoss 7.1.3,以及MySql-connector-java-5.1.22-bin.jar。如何配置JBoss的standalone.xml数据源以连接到MySQL的主从配置?我试过下面的方法

            <datasource jndi-name="java:jboss/datasources/MySqlDS" pool-name="MySqlDS" enabled="true" use-java-context="true">
                <connection-url>jdbc:mysql:replication//master.amazonaws.com:3306,slave.amazonaws.com:3306/dbsid?failOverReadOnly=true;roundRobinLoadBalance=true</connection-url>
                <driver>mysql</driver>
                <transaction-isolation>TRANSACTION_READ_COMMITTED</transaction-isolation>
                <pool>
                    <min-pool-size>10</min-pool-size>
                    <max-pool-size>100</max-pool-size>
                    <prefill>true</prefill>
                </pool>
                <security>
                    <user-name>sb</user-name>
                    <password>sb</password>
                </security>
                <statement>
                    <prepared-statement-cache-size>32</prepared-statement-cache-size>
                    <share-prepared-statements>true</share-prepared-statements>
                </statement>
            </datasource>
            <drivers>
                <driver name="mysql" module="com.mysql">
                    <xa-datasource-class>com.mysql.jdbc.ReplicationDriver</xa-datasource-class>
                </driver>
                <driver name="h2" module="com.h2database.h2">
                    <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                </driver>
            </drivers>
我打开我的JAR并验证了ReplicationDriver类是否在其中。不确定我还应该尝试什么。

对我来说,这很有效:

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

com.mysql.jdbc.Driver
com.mysql.jdbc.jdbc2.optional.MysqlXADataSource

我不知道为什么我要乱搞xa数据源类元素,但对我有效的是

                <driver name="mysql" module="com.mysql">
                    <driver-class>com.mysql.jdbc.ReplicationDriver</driver-class>
                </driver>

com.mysql.jdbc.ReplicationDriver

根据连接url选择驱动程序实现

如果指定如下连接url:“jdbc:mysql:replication/…”,mysql connector/J将返回ReplicationDriver实现

如果将驱动程序类设置为com.mysql.jdbc.ReplicationDriver,则所有数据源都将解码为“复制url”,并且必须始终包含一个主数据源和至少一个从数据源


我认为最好选择url定制(复制、负载平衡、结构…)的正确实现。

对于我来说,我忘记在
复制之后添加额外的冒号(:)
。请注意缺少的冒号,它给了我确切的错误消息,请参见@Shams上文注意复制之后缺少冒号(:)
                <driver name="mysql" module="com.mysql">
                    <driver-class>com.mysql.jdbc.ReplicationDriver</driver-class>
                </driver>