MongoDB
 sql >> Base de Dados >  >> NoSQL >> MongoDB

SocketTimeout com conexão aberta no MongoDB


Após algumas tentativas, descobri que era um problema com o Load Balancer do Azure.
Após 60s de inatividade, ele desconectará qualquer conexão TCP pendente.

Depois de pesquisar mais, encontrei esta postagem do FAQ de diagnóstico do MongoDB e configurei o tcp keepalive para 120s:
sudo sysctl -w net.ipv4.tcp_keepalive_time=<value>

e também configurei o socketKeepAlive do MongoClient como true:
MongoClientOptions.Builder options = MongoClientOptions.builder();
options.socketKeepAlive(true);
mongoClient = new MongoClient(mongoAddress, options.build());

Após essas correções, o problema parece ter desaparecido!