Mon application interagit avec deux bases de données : une sur MongoDB et l'autre sur Neo4J.
Le problème est que si les bases de données sont désactivées ou inaccessibles, l'application se bloque. Je résous le problème avec Neo4J grâce à la méthode verifyConnectivity du driver Neo4J et avec une instruction try-catch, mais avec MongoDB le problème demeure. En fait, il semble que l'application attende MongoDB mais que MongoDB est désactivé et donc l'application attend pendant un temps infini sans envoyer d'exception.
Je cherche un moyen de comprendre que MongoDB est inaccessible afin de le notifier à l'utilisateur, peut-être un délai d'attente ou quelque chose de ce genre est-il nécessaire ? Dans ce cas, comment puis-je le définir ?
Le langage de programmation que j'utilise est Java et la version du pilote MongoDB est la suivante :
<groupId>org.mongodb</groupId>
<artifactId>mongodb-driver-sync</artifactId>
<version>4.1.1</version>
EDIT :
try
{
mongoClient = MongoClients.create(connectionString);
database = mongoClient.getDatabase(dbName);
DBObject ping = new BasicDBObject("ping","1");
database.runCommand((Bson) ping);
}
catch (Exception ex)
{
System.err.println("MongoDB is not available");
return false;
}
return true;