个人博客:ofcoder.com

关于log_status=1的记录

网上都说是防悬挂,具体是指啥又没说清楚。这里先说结论:这个条记录,你可以不用管它。

防悬挂,因为网络延迟或者第一阶段请求丢包,导致第二阶段的回滚请求,先到RM,RM此时没有处理第一阶段请求,没有记录undo_log,所以插入该记录,作为一个防御性的操作,阻止后到的第一阶段请求继续执行。

产生的另一个原因是,请检查项目中是否为多数据源。如果是,需要把seata自动代理关了,一般多数据源都是有开发者已经手动代理了。二阶段的时候,下发找datasource,找到的不是你业务操作数据库的datasource,导致没发现undolog,就插了一条status=1。

# 关闭自动代理
seata:enable-auto-data-source-proxy: false

关于log_status=0的记录

seata-server宕机后,分支事务的undo_log中将出现log_status=0的记录,重新seata-server后,会自动处理掉这些日志。

异常:ShouldNeverHappenException

Error preparing statement. Cause: io.seata.common.exception.ShouldNeverHappenException: [xid:172.19.0.204:8091:9483xxxxxxxxx]get tablemeta failed

解决方案:检查表是否存在。

异常:SQLJoinTableSource

java.lang.ClassCastException: com.alibaba.druid.sql.ast.statement.SQLJoinTableSource cannot be cast to com.alibaba.druid.sql.ast.statement.SQLExprTableSource;

出现原因:update语句不能join其他表。

异常:TmTransactionException

Failed to begin transaction.
io.seata.core.exception.TmTransactionException: TransactionException[Fail to store global session]
....
java.lang.reflect.UndeclaredThrowableException: null

查看seata-server是否抛出类似的错误:

writeSession error, global session size exceeded, size : 566 maxBranchSessionSize : 512

解决方案:开启全局事务的方法入参太多。

异常:TransactionException

TransactionException[Could not register branch into global session xid = 172.32.1.161:8091:113670****4512 status = AsyncComm ]

产生原因:在 @GlobalTransactional 的外面使用 @Transactional 修饰了,例如:

@Transactional
public void aaa() {bbb();
}
@GlobalTransactional
public void bbb() {}

分布式事务之Seata常见异常相关推荐

  1. 分布式事务解决方案Seata

    一.Seata 简介 Seata 是 阿里巴巴2019年开源的分布式事务解决方案,致力于在微服务架构下提供高性能和简单易用的分布式事务服务.在 Seata 开源之前,Seata 对应的内部版本在阿里内 ...

  2. 开发者说:深度剖析开源分布式事务方案 Seata 的事务协调器

    开源共建,不仅体现在共同贡献代码,也包括开发者们根据自己的实践,通过文字的方式,向外表达自己的观点.收获.踩过的坑以及相应的解决方案. 本期开始,我们将推出「开发者说」的专栏,发布来自社区开发者自己写 ...

  3. 老板现在喊我大哥,原因是我用阿里分布式事务框架Seata解决了长久以来困扰公司的分布式事务问题

    大家好,我是曹尼玛 从大学毕业5年,一直努力学习,努力工作,追求新技术,不保守. 上个月我来到一家新公司上班,月薪20K,这家公司老板人很好,对员工很关爱,公司氛围不错,同事们也努力把公司项目搞搞好. ...

  4. druid seata 配置_分布式事务解决方案——Seata使用

    在微服务开发过程中分布式事务一直是一个比较重要的问题,之前对于分布式事务的解决方法一般会通过MQ的最终一致性来解决,尤其是RocketMQ的事务消息,感兴趣的可以看Spring Boot整合Rocke ...

  5. 详解阿里开源分布式事务框架Seata

    Seata发展历史 笔者于2014年开始着手解决阿里巴巴集团内部业务的分布式事务问题,从0到1研发一个支持非侵入模式(内部称之为AT模式,即自动模式)和TCC模式(内部称之为MT模式,即手动模式)的分 ...

  6. eureka server配置_springcloud+eureka整合分布式事务中间件seata

    今天继续给大家分享一下阿里的分布式事务中间件seata的使用,跟上篇文章<springboot多数据源整合分布式事务中间件seata>不一样的是,上篇文章是单服务绑定多数据源的分布式情况, ...

  7. 深入了解分布式事务组件 Seata :AT 模式(二)

    在前面一篇文章,我们介绍了阿里开源的分布式事务组件 Seata 的相关概念,重点介绍了 Seata 的 AT 模式.并通过一个 Spring-Cloud-JPA 的案例,演示了 AT 模式的使用入门. ...

  8. 分布式事务框架seata介绍

    分布式事务框架seata介绍 一 . 事务特性(ACID) 1.原子性(A) 在整个事务中的所有操作,要么全部完成,要么全部不做,没有中间状态.对于事务在执行中发生错误,所有的操作都会被回滚,整个事务 ...

  9. 尚硅谷谷粒商城第六天 本地事务、分布式事务及seata

    1. 本地事务 商品新增功能非常复杂,商品管理微服务在service层中调用保存spu和sku相关的方法,为了保证数据的一致性,必然会使用事务. 在JavaEE企业级开发的应用领域,为了保证数据的完整 ...

最新文章

  1. Android:四种启动模式分析
  2. mysql的explain的用途,利用Explain来分析和优化你的mysql
  3. logback-spring.xml配置文件
  4. 村上隆取消NFT拍卖:会做更充分的准备,坚信NFT的巨大潜力
  5. 招聘数据爬取、数据处理与可视化(v2--解析JS渲染页面)
  6. 微信授权获取code(微信支付)
  7. python升级版本后出现的yum错误
  8. Axure9修改汉化包解决”用例“中”匹配所有“异常的问题
  9. 低智商社会,娱乐至死,2书推荐,世界12大理论,
  10. 激光导航AGV最常见的控制算法有哪些?
  11. Boot重抽样获取logistic回归内部验证AUC可信区间
  12. 怎么给word文档注音_Word文档中,怎样全篇加注拼音?
  13. sdnu 1078
  14. 如何禁用笔记本键盘输入?屏蔽掉笔记本键盘
  15. 除了照片征集、视频征集,fotoo还可以征集什么?
  16. 近源社工-校内网渗透测试
  17. Hibernate与JPA的区别是什么
  18. 曙光服务器I840-G25带外管理
  19. 报错 undefined symbol: _ZN6caffe26detail36_typeMetaDataInstance_preallocated_7E
  20. 蓝桥杯基础练习超全习题题解VIP版——BASIC-26.报时助手(护眼版)

热门文章

  1. vueC-cli3 测试环境打包js文件配置
  2. EduCoder答案-网页抓取及信息提取
  3. 2022年全球市场维生素贴片总体规模、主要生产商、主要地区、产品和应用细分研究报告
  4. OS X Lion 下载资源集合 + 相关技巧
  5. java: 找不到符号,自定义的类都找不到
  6. 微信小程序 自定义带金额的日历组件
  7. 信息搜集:SHODAN API 参考
  8. 2022年二级建造师建筑工程节能相关技术标准综合复习题及答案
  9. 新浪股票java接口,「股票历史数据接口」搜狐股票历史数据接口
  10. echarts 折线图 无数据时连接线段