Spring Data Mongo Db事务注解TransientTransactionError的错误处理

问题描述 投票:0回答:1

我在 Mongo 上有多个操作,我希望将其视为一个操作,因此我启用了事务。我正在使用 Mongo 版本 5。

配置类包含以下bean定义:

@Bean(name = "transactionManager")
MongoTransactionManager transactionManager(MongoDatabaseFactory dbFactory) {
    return new MongoTransactionManager(dbFactory);
}

我的业务逻辑类似于下面的代码片段。假设在此方法内对不同集合进行了更改。

@Transactional
public MyResult create(String payload) {
    //operations omitted for brevity
}

基于Mongo文档(https://www.mongodb.com/docs/v5.0/core/transactions/)我引用:

新的回调 API 还合并了针对 TransientTransactionError 或 UnknownTransactionCommitResult 提交错误的重试逻辑。

也作为参考:https://github.com/mongodb/specifications/blob/master/source/transactions/transactions.rst#error-labels

Spring data Mongo db 是否知道如何处理 TransientTransactionError (包括文档中描述的重试)?如果不是,有什么替代方案?

spring mongodb spring-data spring-data-mongodb
1个回答
0
投票

当我的 tx 结构如下所示时,我也遇到了这个问题:

而且,与 Spring Reactive Mongo Transaction 一起使用时,它似乎只是抛出异常。

© www.soinside.com 2019 - 2024. All rights reserved.