如果mongodb不可访问,如何获取错误?

yk9xbfzb  于 2021-06-29  发布在  Java
关注(0)|答案(1)|浏览(335)

我的应用程序与两个数据库交互:一个在mongodb上,另一个在neo4j上。
问题是,如果数据库被禁用或无法访问,应用程序就会崩溃。我解决了关于neo4j的问题,这多亏了neo4j驱动程序的verifyconnectivity方法和try-catch语句,但是对于mongodb,问题仍然存在。实际上,应用程序似乎在等待mongodb,但是mongodb被禁用了,因此应用程序等待了无限长的时间而没有发送任何异常。
我正在寻找一种方法来理解mongodb是不可访问的,为了通知用户,可能需要一个超时或类似的东西?在这种情况下,我如何设置它?
我使用的编程语言是java,mongodb驱动程序版本如下:

<groupId>org.mongodb</groupId>
    <artifactId>mongodb-driver-sync</artifactId>
    <version>4.1.1</version>

编辑:

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;
dtcbnfnu

dtcbnfnu1#

你可以用 ping (见这里),这是一个禁止操作。

try
{
  DBObject ping = new BasicDBObject("ping", "1");
  mongoClient.getDb().getMongo().getDB("<YOUR_DB").command(ping);
} catch (Exception exp){
  //Cannot connect to MongoDB or your DB
}

相关问题