<bean id="dataSourceA" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close">
<property name="uniqueResourceName" value="mysql/merchant" />
<property name="xaDataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" />
<property name="xaProperties">
<props>
<prop key="user">root</prop>
<prop key="password">wait4you</prop>
<prop key="url">jdbc:mysql://10.0.10.24:3306/merchant?useUnicode=true&characterEncoding=utf-8</prop>
</props>
</property>
<property name="poolSize" value="10"/>
<property name="testQuery" value="SELECT 1"/>
</bean>
<bean id="dataSourceB" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close">
<property name="uniqueResourceName" value="mysql/orders" />
<property name="xaDataSourceClassName" value="com.mysql.jdbc.jdbc2.optional.MysqlXADataSource" />
<property name="xaProperties">
<props>
<!--prop key="user">root</prop>
<prop key="password">wait4you</prop-->
<prop key="user">specl</prop>
<prop key="password">uBpEaNEI5</prop>
<prop key="url">jdbc:mysql://10.0.10.34:3306/orders?useUnicode=true&characterEncoding=utf-8</prop>
</props>
</property>
<property name="poolSize" value="10"/>
<property name="testQuery" value="SELECT 1"/>
</bean>
<bean id="dataSource" class="com.specl.api.sharding.DynamicDataSource">
<property name="targetDataSources">
<map key-type="java.lang.String">
<entry key="order_r_0" value-ref="dataSourceB" />
<entry key="order_rw_0" value-ref="dataSourceB" />
<entry key="merchant_r_0" value-ref="dataSourceA" />
<entry key="merchant_rw_0" value-ref="dataSourceA" />
</map>
</property>
<property name="defaultTargetDataSource" ref="dataSourceA"/>
</bean>
<bean id="sqlMapClient" class="org.springframework.orm.ibatis.SqlMapClientFactoryBean">
<property name="configLocation" value="classpath:sqlmap-config.xml" />
<property name="dataSource" ref="dataSource" />
</bean>
<bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close">
<property name="forceShutdown">
<value>true</value>
</property>
</bean>
<bean id="atomikosUserTransaction" class="com.atomikos.icatch.jta.UserTransactionImp">
<property name="transactionTimeout" value="300" />
</bean>
<bean id="jtaTransactionManager" class="org.springframework.transaction.jta.JtaTransactionManager">
<property name="transactionManager">
<ref bean="atomikosTransactionManager" />
</property>
<property name="userTransaction">
<ref bean="atomikosUserTransaction" />
</property>
<qualifier value="jtaTx"></qualifier>
</bean>
<bean id="singleTransactionManager" class="org.springframework.jdbc.datasource.DataSourceTransactionManager">
<property name="dataSource" ref="dataSourceA"/>
<qualifier value="singleTx"></qualifier>
</bean>
<bean id="boardDao" class="com.specl.api.dao.release.BoardDaoRelease">
<property name="sqlMapClient" ref="sqlMapClient"></property>
</bean>
分享到:
相关推荐
使用spring + atomikos+druid配置的分布式事务demo,两种数据源配置方式都可以,使用junit测试没问题,案例中使用的mysql数据库是8.0.11版本,版本不同请自行修改pom.xml和jdbc.properties
本用例基于 Spring Boot + Druid + Mybatis 配置多数据源,并采用 JTA 实现分布式事务。
spring+mybatis+atomikos配置文件及相关包
Spring Boot:mybatis-plus + atomikos + druid 实现不同实例数据库的多数据源配置和分布式事务管理(demo项目),想到工作上可能会用到多数据源,但是自己在这方面并不是很熟悉,于是在网上查阅了很多文章,结果...
spring+hibernate+atomikos实现多数据源分布式事务管理
NULL 博文链接:https://lizhao6210-126-com.iteye.com/blog/1958831
spring+druid+atomikos分布式事务,多数据源切换!其中包括配置文件
NULL 博文链接:https://zhaoshijie.iteye.com/blog/1836707
开发工具:MyEclipse10, 数据库:Mysql, demo中使用了2个数据源,2个不同的Mysql数据库。 注:不同数据库dataSource的配置是不一样的
开发工具:MyEclipse10 数据库:DB2,Mysql demo中使用了2个数据源,1个DB2数据库,1个Mysql数据库。 注:不同数据库dataSource的配置是不一样的
纯spring多数据库事务,是spring和atomikos组合使用。有spring注解设置数据源,由atomikos负责数据源管理,负责事务管理。追求零配置。大大简化工作量。供参考
atomikos实现多数据源支持分布式事务管理(spring、tomcat、JTA) 结合spring 和durid进行配置,
SpringBoot集成Atomikos框架-实现分布式数据库XA事务; SpringBoot集成Seata框架-实现TCC模式柔性事务; SpringBoot集成Seata框架-实现AT模式柔性事务; SpringBoot集成Sharding-JDBC框架-实现数据库读写分离; ...
spring事务以及分布式事务实现.zip one-data-source 单数据源事务 two-data-source 多数据源事务 模块包括 多数据源配置方法 使用atomikos管理多数据源事务 多数据源事务结合Druid数据库连接池 代码包括声明式事务和...
测试atomikos spring activemq jta oracle 为了最大限度地恢复和关闭/重启能力,强烈建议您使用以下 init 依赖项配置 Spring 配置: 使事务管理器依赖于您所有的 JDBC 和 JMS 连接工厂:这可确保在关闭期间事务管理...
:spring4+mybatis3的增删改查的例子:对mybaits的简单封装,方便简单的调用和多数据源的配置:使用atomikos来处理多数据源的一致性事务:封装对redis的增删改查以及对象的操作:利用spring封装了对redis集群的操作...
实现单表业务零SQL集成Atomikos支持分布式事务,以及支持多数据源配置统一异常处理统一响应结果封装基于JWT实现基于Token的鉴权机制使用Druid Spring Boot Starter集成Druid数据库连接池与监控使用AutoGenerator快速...
使用一个Atomikos事务管理器 ii. 32.2. 使用一个Bitronix事务管理器 iii. 32.3. 使用一个J2EE管理的事务管理器 iv. 32.4. 混合XA和non-XA的JMS连接 v. 32.5. 支持可替代的内嵌事务管理器 xii. 33. Spring集成 xiii....
集成jta-atomikos 实现分布式事务 5_distributed-lock 分布式锁的三种实现方式 6_docker-build 使用dockerfile编排springboot项目 7_release-build 服务发布到生产环境流程 8_my-spring-boot-starter-parent 编写...
集成Atomikos支持分布式事务,以及支持多数据源配置(待集成) 集成Jetcache分布式缓存(最强大的缓存工具,没有一个) 完备的请求日志体系(按需打印,定位排查,敏感词过滤) 基于CompletableFu