Тестирование порога ConnectionTimeout с использованием драйвера Mongo Java 3.0.0
Mongo m = new MongoClient(new ServerAddress(server , port), creds, MongoClientOptions.builder().connectTimeout(2000).socketTimeout(2000).serverSelectionTimeout(10000).socketKeepAlive(true).build());
Я хочу проверить connectionTimeOut
на автономный сервер. Каждый раз, когда я определяю неправильный порт для клиента или останавливаю сервер, он терпит неудачу на этапе выбора сервера и дает serverSelectionTimeOut
, Как я могу проверить connectionTimeOut
порог в среде разработчиков?
0 ответов
Вам необходимо убедиться, что вы подключаетесь к существующему серверу (имя хоста и порт), потому что соединение устанавливается после процесса выбора сервера. Если выбор сервера не удастся, он не перейдет к этапу настройки соединения.
Если нет сервера Mongo, который всегда доступен для тестирования, попробуйте вместо этого развернуть встроенный сервер Mongo на лету на вашем локальном компьютере. Вы можете написать модульный тест, который автоматически запускает встроенный Mongo в начале теста (как показано здесь). В качестве альтернативы вы можете использовать MongoUnit для тестирования, но у меня лично нет опыта.
Если у вас есть правильный сервер, вы можете принудительно установить connectionTimeout, установив значение тайм-аута равным 1 миллисекунде. Вы можете сделать это в коде
MongoClientOptions.builder().connectTimeout(1)
или добавив параметр в URL-адрес вашей базы данных
mongodb://localhost:27017/your_database?connectTimeoutMS=1