mongodb - Amazon Document DB:如何实现多文档事务
问题描述
使用 mongo 模板在文档数据库集群中启动事务会话时。
public class DocDBService() {
@Autowired
MongoTemplate mongoTemplate;
@Autowired
MongoTransactionManager mongoTransactionManager;
public void writeAsTransaction() {
mongoTemplate.setSessionSynchronization(SessionSynchronization.ALWAYS);
TransactionTemplate transactionTemplate = new TransactionTemplate(mongoTransactionManager);
transactionTemplate.execute(
new TransactionCallbackWithoutResult() {
@Override
protected void doInTransactionWithoutResult(final TransactionStatus status) {
mongoTemplate.save(new Document("abc", 1), "test");
mongoTemplate.remove(new Document("abc", 1), "test");
}
}
);
}
}
抛出错误
Sessions are not supported by the MongoDB cluster to which this client is connected
集群 URL确实启用了复制
mongodb://user:password@cluster-url/default?ssl=true& replicaSet=rs0 &readPreference=secondaryPreferred
复制配置:
rs0:PRIMARY> rs.conf()
{
"_id" : "rs0",
"configsvr" : false,
"protocolVersion" : 1,
"writeConcernMajorityJournalDefault" : true,
"members" : [
{
"_id" : 0,
"host" : "cluster.****.us-west-*.docdb.amazonaws.com:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"slaveDelay" : 0
},
{
"_id" : 1,
"host" : "cluster-1.****.us-west-*.docdb.amazonaws.com:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"slaveDelay" : 0
},
{
"_id" : 2,
"host" : "cluster-2.****.us-west-*.docdb.amazonaws.com:27017",
"arbiterOnly" : false,
"buildIndexes" : true,
"hidden" : false,
"priority" : 1,
"slaveDelay" : 0
}
],
"settings" : {
"getLastErrorDefaults" : {
"w" : "majority",
"wtimeout" : 0
}
}
}
在具有单机复制的本地 Mongo DB 3.6 中也是如此。
有关如何克服这一点的任何信息都会有所帮助。提前致谢。
文件:
解决方案
推荐阅读
- c# - 设置请求超时的集中方法?
- azure-ad-b2c - 在页面加载时显示错误标签的自定义策略
- elasticsearch - Elastic Search - 它是适合分析团队的数据库吗?
- blockchain - 区块链性能和区块链可扩展性有什么区别?
- c# - C# REST API 查询解析器
- create-react-app - Vercel 重定向中的环境变量
- javascript - Console.log 返回我需要的内容,但 return 返回一个 '[object Promise]' 字符串
- python - 如何在 Python 中将数据框行拆分为列?
- c# - 函数不适用于异步语句
- javascript - Angular ngModel,3个数组受到影响