Seata常见问题之Seata不支持sql seata如何解决

本文涉及的产品
注册配置 MSE Nacos/ZooKeeper,118元/月
性能测试 PTS,5000VUM额度
函数计算FC,每月15万CU 3个月
简介: Seata 是一个开源的分布式事务解决方案,旨在提供高效且简单的事务协调机制,以解决微服务架构下跨服务调用(分布式场景)的一致性问题。以下是Seata常见问题的一个合集

问题一:Seata+Nacos+DB方式,Server端与Client端 Nacos的配置要求是什么?

Seata+Nacos+DB方式,Server端与Client端 Nacos的配置namespace必须是同一个嘛,可不可以不是同一个Namespace?



参考答案:

"配置可以不同,但是服务发现必须同一个。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/580289?spm=a2c6h.12873639.article-detail.12.456d4378DrHxEF



问题二:Seata中什么情况下同一个事务参与者会注册两次分支?

Seata中什么情况下同一个事务参与者会注册两次分支?



参考答案:

数据源重复代理,导致undolog的操作也做了一次注册。或者你自己debug下分之注册的地方看堆栈。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/580282?spm=a2c6h.12873639.article-detail.13.456d4378DrHxEF



问题三:Seata中我的应用注册到nacos上就很稳定一次都没报异常,是因为seata实时性比nacos强?

Seata中我发现nacos比seata稳定的多,我的rm注册到seata上笔记本关了以后报了好多次注册异常,而我的应用注册到nacos上就很稳定一次都没报异常,是因为seata实时性比nacos更强吗?我更多的是从nacos和seata的实际应用场景去考虑的。



参考答案:

10s一次自动重连而已,而且nacos你关了,连不上数据库会报错。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/580279?spm=a2c6h.12873639.article-detail.14.456d4378DrHxEF



问题四:Seata中像这种情况失败了会重试多少次?

"Seata中像这种情况失败了会重试多少次?

com.mysql.cj.jdbc.MysqlXAException: Undetermined error occurred in the underlying Connection - check your data for consistency

at com.mysql.cj.jdbc.MysqlXAConnection.mapXAExceptionFromSQLException(MysqlXAConnection.java:347)

at com.mysql.cj.jdbc.MysqlXAConnection.dispatchCommand(MysqlXAConnection.java:329)

at com.mysql.cj.jdbc.MysqlXAConnection.rollback(MysqlXAConnection.java:243)

at io.seata.rm.datasource.xa.ConnectionProxyXA.xaRollback(ConnectionProxyXA.java:141)

at io.seata.rm.datasource.xa.ConnectionProxyXA.xaRollback(ConnectionProxyXA.java:132)

at io.seata.rm.datasource.xa.ResourceManagerXA.finishBranch(ResourceManagerXA.java:115)

at io.seata.rm.datasource.xa.ResourceManagerXA.branchRollback(ResourceManagerXA.java:100)

at io.seata.rm.AbstractRMHandler.doBranchRollback(AbstractRMHandler.java:125)

at io.seata.rm.AbstractRMHandler$2.execute(AbstractRMHandler.java:67)

at io.seata.rm.AbstractRMHandler$2.execute(AbstractRMHandler.java:63)

at io.seata.core.exception.AbstractExceptionHandler.exceptionHandleTemplate(AbstractExceptionHandler.java:131)

at io.seata.rm.AbstractRMHandler.handle(AbstractRMHandler.java:63)

at io.seata.rm.DefaultRMHandler.handle(DefaultRMHandler.java:68)

at io.seata.core.protocol.transaction.BranchRollbackRequest.handle(BranchRollbackRequest.java:35)

at io.seata.rm.AbstractRMHandler.onRequest(AbstractRMHandler.java:150)

at io.seata.core.rpc.processor.client.RmBranchRollbackProcessor.handleBranchRollback(RmBranchRollbackProcessor.java:63)

at io.seata.core.rpc.processor.client.RmBranchRollbackProcessor.process(RmBranchRollbackProcessor.java:58)

at io.seata.core.rpc.netty.AbstractNettyRemoting.lambda$processMessage$2(AbstractNettyRemoting.java:281)

at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)

at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)

at io.netty.util.concurrent.FastThreadLocalRunnable.run(FastThreadLocalRunnable.java:30)

at java.lang.Thread.run(Thread.java:748)

Caused by: java.sql.SQLSyntaxErrorException: You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near '0x2618' at line 1

at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:120)

at com.mysql.cj.jdbc.exceptions.SQLError.createSQLException(SQLError.java:97)

at com.mysql.cj.jdbc.exceptions.SQLExceptionsMapping.translateException(SQLExceptionsMapping.java:122)

at com.mysql.cj.jdbc.StatementImpl.executeInternal(StatementImpl.java:764)

at com.mysql.cj.jdbc.StatementImpl.execute(StatementImpl.java:648)

at com.mysql.cj.jdbc.MysqlXAConnection.dispatchCommand(MysqlXAConnection.java:323)

... 20 common frames omitted

MySQL版本:8.0.32

seata server版本: 1.7.1

seata-spring-boot-starter版本: 1.7.1"



参考答案:

"无限,直到成功。有些字符可能有问题,用ip连接tc的方式测一下。xa recover一下,看下哪些xa事务挂在那,然后把data拆成这样去提交 带上formatid,xa commit/rollback 'xid','-branchid',formatID。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/580276?spm=a2c6h.12873639.article-detail.15.456d4378DrHxEF



问题五:Seata中 像这种指定数据库名称的sql seata不支持吗?

Seata中UPDATE db.tableName set fileda=1 where Id=1 像这种指定数据库名称的sql seata不支持吗? 目前回滚导致表找不到 。



参考答案:

到2.0试下,印象中已经修了,如果2.0不行,就是要等2.1或2.0.1了。微服务还是建议各自管理各自的库表,有这种情况应该通过服务调用去触发。官网有升级注意事项去看下。



关于本问题的更多回答可点击进行查看:

https://developer.aliyun.com/ask/580275?spm=a2c6h.12873639.article-detail.16.456d4378DrHxEF

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
7月前
|
SQL 分布式计算 DataWorks
MaxCompute产品使用合集之大数据计算MaxCompute即使用相同的SQL语句在DataWorks和Tunnel上执行,结果却不同,如何解决
MaxCompute作为一款全面的大数据处理平台,广泛应用于各类大数据分析、数据挖掘、BI及机器学习场景。掌握其核心功能、熟练操作流程、遵循最佳实践,可以帮助用户高效、安全地管理和利用海量数据。以下是一个关于MaxCompute产品使用的合集,涵盖了其核心功能、应用场景、操作流程以及最佳实践等内容。
|
7月前
|
SQL 关系型数据库 分布式数据库
数据管理DMS操作报错合集之DMS SQL执行失败且无法看到原因,如何解决
数据管理DMS(Data Management Service)是阿里云提供的数据库管理和运维服务,它支持多种数据库类型,包括RDS、PolarDB、MongoDB等。在使用DMS进行数据库操作时,可能会遇到各种报错情况。以下是一些常见的DMS操作报错及其可能的原因与解决措施的合集。
|
5月前
|
SQL
SQL开发问题之使用distmapjoin的问题如何解决
SQL开发问题之使用distmapjoin的问题如何解决
|
5月前
|
存储 SQL 索引
面试题MySQL问题之使用SQL语句创建一个索引如何解决
面试题MySQL问题之使用SQL语句创建一个索引如何解决
53 1
|
5月前
|
SQL 分布式计算 DataWorks
MaxCompute操作报错合集之使用sql查询一个表的分区数据时遇到报错,该如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
5月前
|
SQL 分布式计算 大数据
MaxCompute操作报错合集之执行多条SQL语句时,使用同一个实例来运行,遇到报错,该如何解决
MaxCompute是阿里云提供的大规模离线数据处理服务,用于大数据分析、挖掘和报表生成等场景。在使用MaxCompute进行数据处理时,可能会遇到各种操作报错。以下是一些常见的MaxCompute操作报错及其可能的原因与解决措施的合集。
|
5月前
|
SQL
云架构数据倾斜问题之在SQL数据源读取查询时合并小文件如何解决
云架构数据倾斜问题之在SQL数据源读取查询时合并小文件如何解决
|
5月前
|
分布式计算 BI MaxCompute
SQL 能力问题之输出聚合的维度列的名称,如何解决
SQL 能力问题之输出聚合的维度列的名称,如何解决
|
5月前
|
SQL 索引
业务系统架构实践问题之想要再SQL代码中生成递增序列,那么步骤问题如何解决
业务系统架构实践问题之想要再SQL代码中生成递增序列,那么步骤问题如何解决
|
5月前
|
SQL Java 索引
SQL 能力问题之Hystrix的降级触发条件问题如何解决
SQL 能力问题之Hystrix的降级触发条件问题如何解决