使用atomikos事物管理搞定了以com.atomikos.jdbc.AtomikosDataSourceBean方式配置的分布式事物(datasource配置如下),但是使用alibaba的druid缺导致服务启动不了.
<bean id="mysqlDataSource1" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close">
<property name="uniqueResourceName" value="MYSQL_1" />
<property name="xaDataSourceClassName" value="${xaDriverClassName}" />
<property name="xaProperties">
<props>
<prop key="URL">${url}</prop>
<prop key="user">${username}</prop>
<prop key="password">${password}</prop>
</props>
</property>
.......
</bean>
以下是druid的配置,结合atomikos了
<bean id="mysqlDataSource_1" class="com.alibaba.druid.pool.xa.DruidXADataSource" init-method="init" destroy-method="close">
<!-- 基本属性 url、user、password -->
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<!-- 配置监控统计拦截的filters -->
<property name="filters" value="stat" />
</bean>
<bean id="mysqlDataSource1" class="com.atomikos.jdbc.AtomikosDataSourceBean" init-method="init" destroy-method="close">
<property name="uniqueResourceName" value="MYSQL_1" />
<property name="xaDataSource" ref="mysqlDataSource_1" />
<property name="poolSize" value="10" />
<property name="minPoolSize" value="10" />
<property name="maxPoolSize" value="30" />
</bean>
<!-- atomikos分布式事物 -->
<bean id="atomikosTransactionManager" class="com.atomikos.icatch.jta.UserTransactionManager" init-method="init" destroy-method="close">
<property name="forceShutdown" value="true" />
</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="atomikosTransactionManager" />
<property name="userTransaction" ref="atomikosUserTransaction" />
<property name="allowCustomIsolationLevels" value="true" />
<property name="globalRollbackOnParticipationFailure" value="true" />
</bean>
<tx:annotation-driven transaction-manager="jtaTransactionManager" proxy-target-class="true" />
以下是启动日志
**** INFO - 2015-01-06 11:43:30,249 - AtomikosDataSoureBean 'MYSQL_1': init... - com.atomikos.logging.Slf4jLogger.logInfo(Slf4jLogger.java:16) main 4472
**** INFO - 2015-01-06 11:43:30,260 - AtomikosDataSoureBean 'MYSQL_1': initializing with [ xaDataSourceClassName=null, uniqueResourceName=MYSQL_1, maxPoolSize=30, minPoolSize=10, borrowConnectionTimeout=30, maxIdleTime=60, reapTimeout=0, maintenanceInterval=60, testQuery=null, xaProperties=[], loginTimeout=0, maxLifetime=0] - com.atomikos.logging.Slf4jLogger.logInfo(Slf4jLogger.java:16) main 4483
**** DEBUG - 2015-01-06 11:43:30,273 - Configuration: adding resource MYSQL_1 - com.atomikos.logging.Slf4jLogger.logDebug(Slf4jLogger.java:20) main 4496
**** DEBUG - 2015-01-06 11:43:30,273 - Installing recovery service on resource MYSQL_1 - com.atomikos.logging.Slf4jLogger.logDebug(Slf4jLogger.java:20) main 4496
**** DEBUG - 2015-01-06 11:43:30,274 - MYSQL_1: refreshing XAResource... - com.atomikos.logging.Slf4jLogger.logDebug(Slf4jLogger.java:20) main 4497
**** INFO - 2015-01-06 11:43:30,276 - New update(s) found: 2.4.7 [http://www.terracotta.org/confluence/display/release/Release+Notes+Ehcache+Core+2.4]. Please check http://ehcache.org for the latest version. - net.sf.ehcache.util.UpdateChecker.doCheck(UpdateChecker.java:98) net.sf.ehcache.CacheManager@4e44ac6a 4499
**** INFO - 2015-01-06 11:43:30,547 - MYSQL_1: refreshed XAResource - com.atomikos.logging.Slf4jLogger.logInfo(Slf4jLogger.java:16) main 4770
**** DEBUG - 2015-01-06 11:43:30,547 - recovery initiated for resource MYSQL_1 with branchIdentifier 10.144.32.149.tm - com.atomikos.logging.Slf4jLogger.logDebug(Slf4jLogger.java:20) main 4770
**** DEBUG - 2015-01-06 11:43:30,550 - endRecovery() done for resource MYSQL_1 - com.atomikos.logging.Slf4jLogger.logDebug(Slf4jLogger.java:20) main 4773
**** DEBUG - 2015-01-06 11:43:30,550 - Configuration: added resource MYSQL_1 - com.atomikos.logging.Slf4jLogger.logDebug(Slf4jLogger.java:20) main 4773
**** DEBUG - 2015-01-06 11:43:30,559 - atomikos connection pool 'MYSQL_1': initializing... - com.atomikos.logging.Slf4jLogger.logDebug(Slf4jLogger.java:20) main 4782
**** DEBUG - 2015-01-06 11:43:30,588 - an AtomikosXAPooledConnection with a SessionHandleState with 0 context(s): registering listener atomikos connection pool 'MYSQL_1' - com.atomikos.logging.Slf4jLogger.logDebug(Slf4jLogger.java:20) main 4811
**** DEBUG - 2015-01-06 11:43:30,605 - an AtomikosXAPooledConnection with a SessionHandleState with 0 context(s): registering listener atomikos connection pool 'MYSQL_1' - com.atomikos.logging.Slf4jLogger.logDebug(Slf4jLogger.java:20) main 4828
**** DEBUG - 2015-01-06 11:43:30,624 - an AtomikosXAPooledConnection with a SessionHandleState with 0 context(s): registering listener atomikos connection pool 'MYSQL_1' - com.atomikos.logging.Slf4jLogger.logDebug(Slf4jLogger.java:20) main 4847
**** DEBUG - 2015-01-06 11:43:30,638 - an AtomikosXAPooledConnection with a SessionHandleState with 0 context(s): registering listener atomikos connection pool 'MYSQL_1' - com.atomikos.logging.Slf4jLogger.logDebug(Slf4jLogger.java:20) main 4861
**** DEBUG - 2015-01-06 11:43:30,657 - an AtomikosXAPooledConnection with a SessionHandleState with 0 context(s): registering listener atomikos connection pool 'MYSQL_1' - com.atomikos.logging.Slf4jLogger.logDebug(Slf4jLogger.java:20) main 4880
**** DEBUG - 2015-01-06 11:43:30,677 - an AtomikosXAPooledConnection with a SessionHandleState with 0 context(s): registering listener atomikos connection pool 'MYSQL_1' - com.atomikos.logging.Slf4jLogger.logDebug(Slf4jLogger.java:20) main 4900
**** DEBUG - 2015-01-06 11:43:30,696 - an AtomikosXAPooledConnection with a SessionHandleState with 0 context(s): registering listener atomikos connection pool 'MYSQL_1'
相关推荐
spring+druid+atomikos分布式事务,多数据源切换!其中包括配置文件
使用spring + atomikos+druid配置的分布式事务demo,两种数据源配置方式都可以,使用junit测试没问题,案例中使用的mysql数据库是8.0.11版本,版本不同请自行修改pom.xml和jdbc.properties
这是一个使用Spring+druid+atomikos的分布式事务demo,若有错误请指出
atomikos实现多数据源支持分布式事务管理(spring、tomcat、JTA) 结合spring 和durid进行配置,
Spring Boot+Druid+Mybatis实现JTA分布式事务
Druid监控分布式解决方案.docx
本用例基于 Spring Boot + Druid + Mybatis 配置多数据源,并采用 JTA 实现分布式事务。
spring+druid+AtomikosDataSource实现多数据源切换及分布式事务控制
本教程提供的分布式事务解决方案的设计思路在所有微服务架构项目中都适用,与编程语言无关,教程中会重点讲解方案的设计思路。 教程中的样例项目基于龙果学院开源的微支付系统进行实现,使用Dubbo作为服务化框架,...
myeclipse开发,导入即可用,可以参阅http://www.cnblogs.com/shamo89/p/7326718.html
基于springboot+druid+fastjson多数据源分布式事务处理源码.zip 基于springboot+druid+fastjson多数据源分布式事务处理源码.zip
druidDataSource 配置文档
最新版的druid和旧版在filter配置方面有些不同,以下是旧版druid中配置filter: spring: ##数据库连接信息 datasource: url: jdbc:mysql://localhost:3306/young username: root password: root driver-class...
springboot+mybatis+druid+atomikos 多数据源,分布式事务,集成websocket,redis,swagger2
Druid 是一个用于大数据实时查询和分析的高容错、高性能开源分布式系统,旨在快速处理大规模的数据,并能够实现快速查询和分析。 Druid 具有以下主要特征: 为分析而设计——Druid 是为 OLAP 工作流的探索性分析...
本配置文件是讲怎样在springboot环境下配置druid数据源,期中包括了一些高级配置,这里是配置文件,另外还需要写配置类,具体请移步本人博客springboot整合druid数据源查看
这是一个配置类,将配置文件中druid的高级配置属性注入到容器中,并且配置了管理后台的Servlet、一个web监控的filter
SpringBoot,idea,演示了使用Druid数据源监控页面的配置和使用
基于 SpringBoot 多数据源 动态数据源 主从分离 快速启动器 支持分布式事务。一个基于springboot的快速集成多数据源的启动器。支持 数据源分组 ,适用于多种场景 纯粹多库 读写分离 一主多从 混合模式。支持数据库...
spring事务以及分布式事务实现.zip one-data-source 单数据源事务 two-data-source 多数据源事务 模块包括 多数据源配置方法 使用atomikos管理多数据源事务 多数据源事务结合Druid数据库连接池 代码包括声明式事务和...