#java #mongodb #ssl
#java #mongodb #ssl
Вопрос:
У меня есть 2 разные базы данных (firstDB, secondDB), подключение отдельно к каждой из них работает корректно, но если в одном сеансе я пытаюсь подключиться ко второму, я получаю сообщение об ошибке, я подключаюсь к первому без проблем
public static MongoDatabase dbConnect() {
System.setProperty("javax.net.ssl.keyStore", "src/main/resources/firstDB.pkcs12");
System.setProperty("javax.net.ssl.keyStorePassword", "qwerty");
ConnectionString connectionString = new ConnectionString(System.getenv("FirstMongoDB_DEV"));
CodecRegistry pojoCodecRegistry = fromProviders(PojoCodecProvider.builder().automatic(true).build());
CodecRegistry codecRegistry = fromRegistries(MongoClientSettings.getDefaultCodecRegistry(),
pojoCodecRegistry);
MongoClientSettings clientSettings = MongoClientSettings.builder()
.applyConnectionString(connectionString)
.codecRegistry(codecRegistry)
.build();
return MongoClients.create(clientSettings).getDatabase("firstDB");
}
код для подключения одинаков для обоих, поэтому, если я вызову firstDB connect, он будет работать нормально, и если после этого я вызову connect для secondDB, я получу com.mongodb.MongoSocketReadException: преждевременно достигнут конец потока
Если я поменяю местами соединения, сначала на secondDB, а затем на firstDB, я получу тот же результат
Комментарии:
1. В общем, вы можете получить ссылку на несколько баз данных с одним и тем же
MongoClient
экземпляром.2. @prasad_ Как это сделать с 2 разными строками подключения? у обоих из них есть собственный логин / проход
Ответ №1:
Проблема заключалась в том, что JVM не знает, как динамически изменять хранилище ключей, библиотеку, которая помогла