-
Notifications
You must be signed in to change notification settings - Fork 172
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
如何使用EnableRetryOnFailure #258
Comments
sharding-core的savechange如果不分库本质就是用的同一个sqlconnection,然后将同一个connection传入到2个或者3个dbcontext,foreach进行分别提交 代码本质就是这个 https://learn.microsoft.com/zh-cn/ef/core/saving/transactions 您可以自己试试看,因为这个错误应该不是我这边抛出的,具体我也是按照官方文档来实现的所以也没有试过这个配置,你可以先自己试试,我后续看看这个问题 : ) |
具体还没有看过 |
我是最近生产环境的一次数据库主从切换才发现这个项目没添加 |
@NuxYoung 好的我晚点本地尝试一下,实在不好意思给你带来的问题深表歉意 |
没事,框架开源已经很好了,也需要我们共同去完善,这也是开源的目的嘛^_^ |
非常抱歉,我定位到问题了,开发的伙伴没有遵循好规则,导致 |
@NuxYoung 嗯不过这个也不能算是你们的问题,因为IsMultiDbContext本质来讲是插入的时候跨分片了或者跨后缀表了这个可能你们并不一定能修改掉,本质还是dbcontext在多个提交时需要开事务并且无法支持多个dbcontext的共享事务问题,可能你们不让他为true也不一定有效 😂,因为业务可能会出现插入两张表或者其他情况会发生 |
是的,我也考虑到这个问题,如果同时操作多个context或者多张分页表,也会有报错。目前我们采用的方法是对这个业务动作先禁用事务,但这个不是最佳的解决方案 |
@NuxYoung dotnet/efcore#24922 可以看下这个里面的讨论 |
因数据库采用了AlwaysOn作为高可用方案,主从切换的时候会导致数据库连接不可用。在未使用ShardingCore前,采用了
EnableRetryOnFailure
,允许重试。但是使用以后,执行SaveChangesAsync()
的时候,会报异常想问下有合适的解决方案吗?以下是我的配置:
The text was updated successfully, but these errors were encountered: