此客户端所连接的 MongoDB 集群不支持会话-springboot-mongodb-transactions
Posted
技术标签:
【中文标题】此客户端所连接的 MongoDB 集群不支持会话-springboot-mongodb-transactions【英文标题】:Sessions are not supported by the MongoDB cluster to which this client is connected-springboot-mongodb-transactions 【发布时间】:2019-11-06 02:47:51 【问题描述】:我需要使用 spring mongotemplate 事务。 除非满足条件,否则将不得不手动回滚事务。 我得到了例外 com.mongodb.MongoClientException:此客户端连接到的 MongoDB 集群不支持会话。 如何使用 Spring mongodb 事务。 请帮帮我。
@Autowired
MongoTransactionManager mongoTransactionManager;
@Autowired
TestDao testDao;
@Transactional
public void testMethod()
int temp = 0;
try
testDao.saveDatainTempTable();
testDao.saveMongoData();
if (temp == 0)
System.out.println("=========================");
TransactionInterceptor.currentTransactionStatus().setRollbackOnly();
mongoTransactionManager.rollback(TransactionInterceptor.currentTransactionStatus());
catch (Exception e)
@Configuration
public class MongoTransactionConfig extends AbstractMongoConfiguration
@Bean
MongoTransactionManager transactionManager(MongoDbFactory dbFactory)
return new MongoTransactionManager(dbFactory);
@Override
protected String getDatabaseName()
return "test";
@Override
public MongoClient mongoClient()
return new MongoClient("127.0.0.1", 27017);
【问题讨论】:
考虑将服务器端 Mongo 客户端更新为支持会话的版本。 我正在使用仅支持会话的更新版本 mongo v4.0.9。但我仍然遇到异常。我不明白我哪里出错了 我在使用 monogdb server 4.0.9 时遇到了类似的问题 @naaz 如果您找到任何解决方案,请告诉我 有人告诉我,在我的情况下它不适用于单个实例 【参考方案1】:在 Linux 上,包含默认的 /etc/mongod.conf 配置文件 使用包管理器安装 MongoDB 时。
在 Windows 上,一个 默认的/bin/mongod.cfg 配置文件是 在安装过程中包含
在 macOS 上,包含默认的 /usr/local/etc/mongod.conf 配置文件 从 MongoDB 的官方 Homebrew tap 安装时。
添加以下配置
replication:
oplogSizeMB: 128
replSetName: "rs0"
enableMajorityReadConcern: true
sudo service mongod restart;
蒙哥;
rs.initiate(
_id: "rs0",
version: 1,
members: [
_id: 0, host : "localhost:27017"
]
)
检查要启用的配置
rs.conf()
我们可以使用连接URL作为
mongodb://localhost/default?ssl=false&replicaSet=rs0&readPreference=primary
文档:config-optionssingle-instance-replication
【讨论】:
以上是关于此客户端所连接的 MongoDB 集群不支持会话-springboot-mongodb-transactions的主要内容,如果未能解决你的问题,请参考以下文章
MongoError:此 MongoDB 部署不支持可重试写入。请将 retryWrites=false 添加到您的连接字符串
MongoError:此 MongoDB 部署不支持可重试写入。请将 retryWrites=false 添加到您的连接字符串
Win7 远程桌面 错误代码:5 异常处理(您的远程桌面会话即将结束 此计算机的虚拟内存可能不足。请关闭其他程序,然后重试连接远程计算机。如果问题仍然存在,请联系网络管理员或技术支持。)