纠正自己对mysql的一个误解,mysql从5.0开始支持XA DataSource。Connector/J 版本要使用5.0版本,5.0以下的不支持。
Mysql Connector/J 文档中提到:
1 Connector/J 5.0 provides support for all the functionality offered by Connector/J 3.1 and includes distributed transaction (XA) support.
2 You can also use the MysqlDataSource or MysqlConnectionPoolDataSource classes in the
com.mysql.jdbc.jdbc2.optional
package, if your J2EE application server supports or requires them. Starting with Connector/J 5.0.0, the
javax.sql.XADataSource
interface is implemented via the
com.mysql.jdbc.jdbc2.optional.MysqlXADataSource
class, which supports XA distributed transactions when used in combination with MySQL server version 5.0.
mysql文档中提到
I.5. 对XA事务的限制
XA事务支持限于InnoDB存储引擎。
MySQL XA实施是针对外部XA的,其中,MySQL服务器作为资源管理器,而客户端程序作为事务管理器。未实施“内部XA”。这样,就允许MySQL服务器内的单独存储引擎作为RM(资源管理器),而服务器本身作为TM(事务管理器)。处理包含1个以上存储引擎的XA事务时,需要内部XA。内部XA的实施是不完整的,这是因为,它要求存储引擎在表处理程序层面上支持两阶段提交,目前仅对InnoDB实现了该特性。
对于XA START,不支持JOIN和RESUME子句。
对于XA END,不支持SUSPEND [FOR MIGRATE]子句。
在全局事务内,对于每个XA事务,xid值的bqual部分应是不同的,该要求是对当前MySQL XA实施的限制。它不是XA规范的组成部分。
如果XA事务达到PREPARED状态而且MySQL服务器宕机,当服务器重启后,能够继续处理事务。就像原本应当的那样。但是,如果客户端连接中止而服务器继续运行,服务器将回滚任何未完成的XA事务,即使该事务已达到PREPARED状态也同样。它应能提交或回滚PREPARED XA事务,但在不更改二进制日志机制的情况下不能这样。
分享到:
相关推荐
MySQL执行XA MySQL时,MySQL服务器相当于一个用于管理全局事务中的XA事务的资源管理器。与MySQL服务器连接的客户端相当于事务管理器。从5.1版本开始支持
Mysql事务控制(XA分布式事务)和锁定语句
MySQL 外部XA及其在分布式事务中的应用分析,何登成出品
近日,腾讯云发布了分布式数据库解决方案(DCDB),其最明显的特性之一就是提供了高于开源分布式事务XA的性能。大型业务系统有着用户多、并发高的特点,在这方面,集中式数据库(单机数据库)的性能很难支持,因此...
myeclipse开发,导入即可用,可以参阅http://www.cnblogs.com/shamo89/p/7326718.html
介绍分布式事务的定义、原则和实现原则,介绍使用Spring框架实现分布式事务的几种方式,包括使用JTA、Spring事务同步、链式事务等,并通过实战介绍其实现。除此以外还介绍了一些分布式事务相关的技术,如幂等性、...
析一般分布式事务处理失败的原因, 给出基于XA接口的MySQL( 关系型数据库管理系统) 和 PHP( 超级文本预处理语言) 对分布式事务处理的实现方法和过程. 研究结果表明, 该分布式事务 处理方法可靠, 并可简化程序的实现.
7. [支持子服务嵌套分布式事务(全球首创)](#支持子服务嵌套分布式事务(全球首创))。 8. 支持服务,本地事务和分布式事务混合嵌套(全球首创) 9. 支持超时3次重试,重复请求保证幂等性 10. 支持go,java语言...
jta Springboot + Atomikos + Druid + Mysql 实现JTA分布式事务 问题一:Druid 和 Mysql 版本的问题 问题二:Springtest 默认情况下事务回滚 Mysql对XA协议支持不好,有待看
在写之前先来了解一下,分布式事务的一些解决方案。 现目前处理分布式事务的方案有很多,比如 基于 XA 协议的方案 基于业务逻辑的 TCC 协议方案 基于 SAGA 协议的方案 而实现了对应的协议的有 在 Java 中基于 XA ...
1:XA分布式事务 2:TCC分布式事务 3:消息分布式事务 Mycat分片规则 Mycat读写分离 Mycat故障切换 Mycat+Percona+Haproxy+keepalived Zookeeper搭建Mycat高可用集群 Mycat注解技术 Mycat性能监控 Mycat架构剖析 1) ...
支持XA分布式事务(1.6.5)。 支持全局序列号,解决分布式下的主键生成问题。 分片规则丰富,插件化开发,易于扩展。 强大的web,命令行监控。 支持前端作为MySQL通用代理,后端JDBC方式支持Oracle、DB2、SQL Server...
对分布式事务数据库产品HotDB Server v2.5.5单计算节点模式(以下简称HotDB)进行性能压力测试,明确HotDB在开启强一致(即XA)模式和普通一致模式下,银行事务型转账场景的吞吐量、响应时间、服务器资源使用率等...
TCC事务机制相对于传统事务机制(X/Open XA Two-Phase-Commit),其特征在于它不依赖资源管理器(RM)对XA的支持,而是通过对(由业务系统提供的)业务逻辑的调度来实现分布式事务。主要由三步操作,Try: 尝试执行业务...
JMay是什么JMay是一款基于Spring、SpringMVC、Mybatis、Atomikos集成框架,用于快速搭建跨数据库、分布式事务(XA规范)支持的Java web项目.JMay有哪些功能1....基于Atomikos,分布式事务支持(需要数据库支持XA规范)
高可靠性:支持分布式场景下的异常事务回滚,以及随着时间的推移异常恢复,以防止事务中止 可用性:提供零侵入性Spring-Boot和Spring-Namespace以与业务系统快速集成 高性能:分散式设计,与业务系统完全集成,自然...
7.11分布式(XA)事务307 7.11.1内部XA事务307 7.11.2外部XA事务308 7.12查询缓存309 7.12.1MySQL如何判断缓存命中309 7.12.2查询缓存如何使用内存311 7.12.3什么情况下查询缓存能发挥作用313 7.12.4如何配置...
它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如Java同构、异构语言、云原生等各种多样化的应用场景。 Apache ShardingSphere定位为关系型数据库中间件,旨在充分合理地在分布式的场景下利用...