Dovresti abilitare _autoReconnect nel costruttore mongo::DBClientConnection::DBClientConnection.
http://api.mongodb.org/cplusplus/current/classmongo_1_1_d_b_client_connection.html#a6a1a348024dd302572504b7bfb6e74a2
La variabile _failed restituita dal metodo isfailed() non viene impostata finché non viene chiamato _check Connection. _checkConnection non viene chiamato fino a quando qualcosa non viene inviato al database, quindi in alternativa puoi chiamare il comando ping prima di chiamare _isFailed. Tuttavia, la soluzione consigliata è abilitare _autoReconnect.