2015-03-13 2 views
3

Я пытаюсь установить тайм-аут соединения для MongoClient (версия драйвера 2.13).MongoClient не уважает connectTimeout

Он висит на 10 секунд, а затем истекает время. Мне нужен быстрый тайм-аут, потому что этот код используется в тесте.

Вот мой код:

String connectionUri = properties.getProperty("application.mongo.url"); 
System.out.println("******  "+ connectionUri + "*******"); 
MongoClientOptions mongoClientOptions = MongoClientOptions.builder() 
               .connectTimeout(500) 
               .build(); 

MongoClient mongoClient = new MongoClient(connectionUri, mongoClientOptions); 

javadoc is describes the connectTimeoutthis post и описывает, как установить тайм-аут.

У кого-нибудь были подобные проблемы и разрешили?

+0

Можете ли вы привести пример строки подключения вы используете с варианты? – Ross

+0

Также задает параметр 'socketTimeout', а также решить проблему с быстрым сбоем? http://api.mongodb.org/java/2.13/com/mongodb/MongoClientOptions.Builder.html#socketTimeout-int- – Ross

ответ

3

Вы должны использовать MongoClientOptions.builder().serverSelectionTimeout(500).build(), если вы хотите протестировать подключение к серверу. другие свойства для установки в случае, если вы хотите, чтобы проверить их, являются:

  • ConnectTimeout
  • socketTimeout
  • heartbeatConnectTimeout
  • heartbeatSocketTimeout
+1

См. Также https://scalegrid.io/blog/understanding-mongodb-client-timeout -опции/ – Pino

Смежные вопросы