Как настроить кластер MongoDB, который поддерживает сессии? - PullRequest
0 голосов
/ 09 мая 2018

Я хочу изучить новую функцию транзакций в 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) ~ [Весенне-данных MongoDB-2.1.0.DATAMONGO-1920-SNAPSHOT.jar: 2.1.0.DATAMONGO-1920-СНАПШОТ]

Ответы [ 3 ]

0 голосов
/ 18 июля 2018

У меня возникла та же проблема, когда я пытался подключить его к одному автономному экземпляру mongo, однако, как написано в официальной документации , что Mongo поддерживает функцию транзакций для набора реплик. Итак, я попытался создать набор реплик со всеми экземплярами на MongoDB 4.0.0 и смог успешно выполнить код. Так, Запустите набор реплик (3 члена), затем попробуйте выполнить код, проблема будет решена.

Примечание: вы можете настроить набор реплик на том же компьютере для тестов https://docs.mongodb.com/manual/tutorial/deploy-replica-set-for-testing/

0 голосов
/ 15 мая 2019

Убедитесь, что вы используете обновленный API - например:

MongoClient mongoClient = MongoClients.create();
MongoDatabase dataBase = mongoClient.getDatabase("mainDatabase");
MongoCollection<Document> collection = dataBase.getCollection("entities");

Также убедитесь, что у вас открыт файл mongo.exe.

0 голосов
/ 11 мая 2018

Я отключил TLS (внутри Spring Data MongoDB), и теперь функция транзакций с версией разработки 3.7.9 работает нормально.

...