Spróbuj ustawić opcję maxConnectionIdleTime w MongoClientOptions (zwłaszcza jeśli używasz hostowanego środowiska MongoDB)
Przykład:
new MongoClientOptions.Builder()
.requiredReplicaSetName(REPLICASET_NAME)
.maxConnectionIdleTime (MAX_IDLE_TIME)
.connectionsPerHost(CONNECTION_PER_HOST)
.cursorFinalizerEnabled(false)
.build();
connectTimeout jest mylący, ponieważ jest to ustawienie limitu czasu dla początkowego połączenia.
W przypadku problemu związanego z ponownym zainicjowaniem MongoClient upewnij się, że kod klienta znajduje się w odpowiednim zakresie, aby kod wstawiania mógł zostać pobrany. Ponadto widzę ponownie inicjalizację tylko bazy danych, a nie obiektu na poziomie kolekcji (proxy?).