大家好,我们在学习如何使用TCC的事务管理模式。 我们使用了群公告里的例子“springcloud-seata-feign-master”。 在TM调用TC的相应函数向数据库插入一条记录,然后在TM里抛出异常。 程序日志也显示已经二阶段回滚了,但是数据库里的新增记录没有删除。 有哪位大神知道是什么原因吗?
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。
根据您描述的情况,TCC事务模式在执行过程中出现了预期的二阶段回滚操作,但数据库中的记录并未被删除。这可能涉及几个关键点,我们逐一排查:
TCC事务流程确认:
日志分析:
补偿操作实现:
数据库事务隔离级别:
GTS服务状态:
资源锁定与并发问题:
代码与配置复审:
综上所述,解决此问题的关键在于细致检查TCC各阶段的实现细节、日志信息、数据库操作及服务配置,以定位具体原因并采取相应措施。希望以上建议能帮助您解决问题。您可以复制页面截图提供更多信息,我可以进一步帮您分析问题原因。