JBoss as 配置分布式数据源 (as4.2 和 as7.x)

    对于Java 事务,这里给大家分享一本书 《Java事务设计策略》 作者 Mark Richards 译者 翟静 。

    http://www.infoq.com/cn/minibooks/JTDS 大家也可以在这里下载

    下面是JBoss as4.2 和 JBoss as7.x 的 Xa-Datasource 的配置。

    

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE datasources PUBLIC "-//JBoss//DTD JBOSS JCA Config 1.5//EN"
                             "http://www.jboss.org/j2ee/dtd/jboss-ds_1_5.dtd">
<datasources>
 <xa-datasource>
  <jndi-name>xa-mysql</jndi-name>
  <track-connection-by-tx/>
  <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
  <xa-datasource-property name="URL">jdbc:mysql://localhost:3306/jweb?useUnicode=true&amp;characterEncoding=utf8&amp;characterResultSets=utf8</xa-datasource-property>
  <user-name>root</user-name>
  <password>11111</password>
  <!--pooling parameters -->
  <min-pool-size>5</min-pool-size>
  <max-pool-size>20</max-pool-size>
  <blocking-timeout-millis>5000</blocking-timeout-millis>
  <idle-timeout-minutes>15</idle-timeout-minutes>
  <no-tx-separate-pools/>
  <new-connection-sql>set autocommit=1</new-connection-sql>
  <metadata>
   <type-mapping>mySQL</type-mapping>
  </metadata>
 </xa-datasource>
 <xa-datasource>
  <jndi-name>xa-mysql2</jndi-name>
  <track-connection-by-tx/>
  <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>
  <xa-datasource-property name="URL">jdbc:mysql://localhost:3306/mytest?useUnicode=true&amp;characterEncoding=utf8&amp;characterResultSets=utf8</xa-datasource-property>
  <user-name>root</user-name>
  <password>11111</password>
  <no-tx-separate-pools/>
  <new-connection-sql>set autocommit=1</new-connection-sql>
 </xa-datasource>
</datasources>

 <subsystem xmlns="urn:jboss:domain:datasources:1.0">
            <datasources>
                <xa-datasource jta="true" jndi-name="java:/xa-mysql" pool-name="xa-mysql" enabled="true" use-ccm="false">
                    <xa-datasource-property name="URL">
                        jdbc:mysql://localhost:3306/jweb
                    </xa-datasource-property>
                    <driver>mysql</driver>
                    <new-connection-sql>set autocommit=1</new-connection-sql>                     <xa-pool>
                        <min-pool-size>10</min-pool-size>
                        <max-pool-size>20</max-pool-size>
                        <prefill>true</prefill>
                        <is-same-rm-override>false</is-same-rm-override>
                        <interleaving>false</interleaving>
                        <pad-xid>true</pad-xid>
                        <wrap-xa-resource>false</wrap-xa-resource>
                    </xa-pool>
                    <security>
                        <user-name>root</user-name>
                        <password>11111</password>
                    </security>
                    <validation>
                        <validate-on-match>false</validate-on-match>
                        <background-validation>false</background-validation>
                        <background-validation-millis>0</background-validation-millis>
                    </validation>
                    <statement>
                        <prepared-statement-cache-size>0</prepared-statement-cache-size>
                        <share-prepared-statements>false</share-prepared-statements>
                    </statement>
                </xa-datasource>
                <xa-datasource jta="true" jndi-name="java:/xa-mysql2" pool-name="xa-mysql2" enabled="true" use-ccm="false">
                    <xa-datasource-property name="URL">
                        jdbc:mysql://localhost:3306/mytest
                    </xa-datasource-property>
                    <driver>mysql</driver>
                    <new-connection-sql>set autocommit=1</new-connection-sql>                     <xa-pool>
                        <min-pool-size>10</min-pool-size>
                        <max-pool-size>20</max-pool-size>
                        <prefill>true</prefill>
                        <is-same-rm-override>false</is-same-rm-override>
                        <interleaving>false</interleaving>
                        <pad-xid>true</pad-xid>
                        <wrap-xa-resource>false</wrap-xa-resource>
                    </xa-pool>
                    <security>
                        <user-name>root</user-name>
                        <password>11111</password>
                    </security>
                    <validation>
                        <validate-on-match>false</validate-on-match>
                        <background-validation>false</background-validation>
                        <background-validation-millis>0</background-validation-millis>
                    </validation>
                    <statement>
                        <prepared-statement-cache-size>0</prepared-statement-cache-size>
                        <share-prepared-statements>false</share-prepared-statements>
                    </statement>
                </xa-datasource>
                <drivers>
                    <driver name="mysql" module="com.mysql">
                        <xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class>                     </driver>
                    <driver name="h2" module="com.h2database.h2">
                        <xa-datasource-class>org.h2.jdbcx.JdbcDataSource</xa-datasource-class>
                    </driver>
                </drivers>
            </datasources>
        </subsystem>


在配置分布式数据源时,需要注意:

  • 4.2中, <track-connection-by-tx/>   
<no-tx-separate-pools/>  <new-connection-sql>set autocommit=1</new-connection-sql> 这三个配 置 

  • 7.x中, <new-connection-sql>set autocommit=1</new-connection-sql> 和<xa-datasource-class>com.mysql.jdbc.jdbc2.optional.MysqlXADataSource</xa-datasource-class> 在Driver中配置支持分布式事务的驱动。
  • 对于数据库也要支持分布式事务。 



转载于:https://my.oschina.net/FengJ/blog/55742

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值