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

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

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

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

下一个

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

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

抛出异常:MongoDB.Driver.Core.dll 中的“MongoDB.Driver.MongoCommandException”(“命令插入失败:事务 1 已中止..”)抛出异常:MongoDB.Driver.Core 中的“MongoDB.Driver.MongoCommandException” .dll

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

c# mongodb transactions mongodb-.net-driver
1个回答
2
投票

您可以调用此命令

db.adminCommand( { setParameter: 1, transactionLifetimeLimitSeconds: 30 } )
,例如:

var adminDb = client.GetDatabase("admin");
adminDb.RunCommand<BsonDocument>("{ setParameter: 1, transactionLifetimeLimitSeconds: 30 }");
© www.soinside.com 2019 - 2024. All rights reserved.