narayana专题

ShardingSphere Narayana XA 事务不回滚问题定位

ShardingSphere Narayana XA 事务不回滚问题定位 问题背景 用户反馈,在使用 ShardingSphere + Narayana 执行 XA 事务时,发生报错:java.sql.SQLException: javax.transaction.RollbackException: TransactionImple.enlistResource - ARJUNA016064

Narayana 事务 begin 流程

Narayana 事务 begin 流程 整体流程 检查事务状态获取超时时间创建事务对象事务对象设置到 ThreadLocal 中,和当前线程绑定 使用 API TransactionManager transactionManager = jtaPropertyManager.getJTAEnvironmentBean().getTransactionManager();// 开

Narayana 事务管理器初始化流程

总体流程 创建 TransactionManagerImple创建事务管理器对象读取 narayana 的 xml 配置,进行属性赋值获取 recovery 模块加载恢复模块事务恢复日志的初始化初始化事务日志存储服务JDBC方式存储建表文件方式存储 创建 TransactionManager 流程 Narayana 会通过 BeanPopulator 反射创建对应的 Transac

Narayana-XA事务恢复(5)

Narayana-XA事务恢复(5) 说事务恢复流程之前,我们来讨论下,会啥会出现事务恢复?XA二阶段提交协议不是强一致性的吗?要解答这个问题,我们就要来看看XA二阶段协议有什么问题? 问题一 :单点故障 由于协调者的重要性,一旦协调者TM发生故障。参与者RM会一直阻塞下去。尤其在第二阶段,协调者发生故障,那么所有的参与者还都处于锁定事务资源的状态中,而无法继续完成事务操作。(如果是协调者挂掉,

Shardingsphere整合Narayana对XA分布式事务的支持(4)

Shardingsphere整合Narayana对XA分布式事务的支持(4) Apache ShardingSphere 是一套开源的分布式数据库中间件解决方案组成的生态圈,它由 JDBC、Proxy 和 Sidecar(规划中)这 3 款相互独立,却又能够混合部署配合使用的产品组成。它们均提供标准化的数据分片、分布式事务和数据库治理功能,可适用于如 Java 同构、异构语言、云原生等各种多样化