mongodb c#如何延长mongo db transaction lifetime

fnatzsnv  于 12个月前  发布在  Go
关注(0)|答案(1)|浏览(205)

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

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

字符串

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


当启动和提交事务之间的代码结束时,im会收到错误,如
引发异常错误:“MongoDB.Driver.Core.dll中的”MongoDB.Driver.MongoCommandException“(“命令插入失败:事务1已中止..”)引发异常错误:MongoDB.Driver.Core.dll中的“MongoDB.Driver.MongoCommandException”
如果代码所需时间不到1分钟,则一切正常。

cfh9epnr

cfh9epnr1#

你可以这样调用这个命令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,我相信它应该有帮助(但我没有亲自使用它)。

相关问题