c# 如何延长mongodb事务生命周期

标签 c# mongodb transactions mongodb-.net-driver

如何更改transactionLifetimeLimitSeconds在我的云副本集中。 首先,我正在创建新 session :

var client = new MongoClient(new MongoUrl(_connectionString));           
var session= client.StartSession();

下一步

session.StartTransaction();
/* Code that takes longer than 1 minute*/
session.CommitTransaction();

当启动和提交事务之间的代码结束时,我会收到类似的错误

Exception thrown: 'MongoDB.Driver.MongoCommandException' in MongoDB.Driver.Core.dll ("Command insert failed: Transaction 1 has been aborted..") Exception thrown: 'MongoDB.Driver.MongoCommandException' in MongoDB.Driver.Core.dll

如果代码花费的时间少于 1 分钟,则一切正常。

最佳答案

您可以调用此命令 db.adminCommand( { setParameter: 1, transactionLifetimeLimitSeconds: 30 } ),如下所示:

var adminDb = client.GetDatabase("admin");
adminDb.RunCommand<BsonDocument>("{ setParameter: 1, transactionLifetimeLimitSeconds: 30 }");

另外,请检查此交易选项:http://mongodb.github.io/mongo-csharp-driver/2.11/apidocs/html/P_MongoDB_Driver_TransactionOptions_MaxCommitTime.htm ,我相信它应该有帮助(但我个人没有使用它)。

关于c# 如何延长mongodb事务生命周期,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64354454/

相关文章:

MongoDB 按数组大小对大量文档进行排序

linux - Docker Compose 中的 MongoDb - 提供配置

php - 过滤数组和过滤数组mongodb的$sum up字段

c# - 通过 xml 文档中的内部文本查找 xml 节点

c# - LINQ 如何创建 BETWEEN 条件

c# - 如何在 C# 正则表达式中使用lookbehind 来删除换行符?

transactions - 有没有办法解决 DynamoDB 中的事务项目限制?

c# - .NET MVC 4 WebAPI POST 不工作

java - 在 EJB 中处理 TransactionTimeout 异常

java - Spring声明式事务模式下事务似乎不起作用