【发布时间】:2018-10-19 16:18:22
【问题描述】:
我想探索 MongoDB 的新事务特性并使用 Spring Data MongoDB。但是,我收到异常消息“此客户端连接到的 MongoDB 集群不支持会话”。感谢任何有关 MongoDB 3.7.9 配置的提示。
堆栈跟踪开始于:
com.mongodb.MongoClientException:会话不受 此客户端连接到的 MongoDB 集群 在 com.mongodb.MongoClient.startSession(MongoClient.java:555) ~[mongodb-driver-3.8.0-beta2.jar:na] 在 org.springframework.data.mongodb.core.SimpleMongoDbFactory.getSession(SimpleMongoDbFactory.java:163) ~[spring-data-mongodb-2.1.0.DATAMONGO-1920-SNAPSHOT.jar:2.1.0.DATAMONGO-1920-SNAPSHOT]
【问题讨论】:
-
您需要一个 MongoDB "Server" 版本 3.6 in order to use sessions。如果没有后端服务器,仅更新的驱动程序无法完成这项工作。这就是错误告诉你的内容。
-
我的服务器版本为 3.7.9,即最新版本。
-
没有“服务器”3.7.9 之类的东西。这就是 Java 驱动程序版本。 “服务器”是指通过 mongo shell 连接并键入
db.version()时看到的内容。即使您使用的是开发分支服务器,当前的“cut”也是 3.7.5。所以你说的是“驱动程序”,我说的是“服务器”。 -
我在 mongo shell 中下载了
http://downloads.mongodb.org/win32/mongodb-win32-x86_64-2008plus-ssl-3.7.9.zip?_ga=2.134458040.816321646.1525581231-1505195349.1522993255和db.version()返回3.7.9 -
嗯,这是一个开发版本,但驱动程序肯定会说实际连接实际上不是受支持的服务器,因此您可能至少应该检查您是否实际连接到您认为的服务器实例连接到。此外,您可能不应该使用开发版本,直到您实际上拥有针对“稳定”版本的工作代码。如前所述,您“应该”使用 3.6 系列服务器才能使用会话。 “开发”分支中的当前驱动程序和服务器版本处于“变化”状态,API 中的各种内容可能会发生变化。
标签: spring mongodb spring-boot spring-data spring-data-mongodb