如何使用Java驱动程序检查MongoDB 3.0客户端连接状态?

如何使用Java驱动程序检查MongoDB 3.0客户端连接状态?,java,mongodb,database,Java,Mongodb,Database,我遇到问题,因为我只希望在MongoClient成功建立连接后执行代码。但我在查找有关此的文档时遇到问题。这是我的例子 MongoClientURI connectionString = new MongoClientURI("mongodb://"+mongoUser+":"+mongoPassword+"@"+config.getMongodbHost()+":"+config.getMongodbPort()+"/"+config.getMongodbDatabase());

我遇到问题,因为我只希望在MongoClient成功建立连接后执行代码。但我在查找有关此的文档时遇到问题。这是我的例子

MongoClientURI connectionString = new MongoClientURI("mongodb://"+mongoUser+":"+mongoPassword+"@"+config.getMongodbHost()+":"+config.getMongodbPort()+"/"+config.getMongodbDatabase());
        mongoClient = new MongoClient(connectionString);
        goldfishDatabase = mongoClient.getDatabase("goldfish");

System.out.println("Don't print this line until the connection has been made.");

驱动程序维护一个连接池。所以一个普遍的问题应该是

mongoClient = new MongoClient( connectionString )
抛出异常,特别是MongoException。之后,如果需要连接,驱动程序将提供连接

让我们假设在调用
newmongoclient()
之后,数据库在某个点停止运行。然后,需要连接的操作将失败,如果是使用连接的写操作。读取操作将以或失败。请详细查看下一页

请注意,这些都是运行时异常,因此未选中这些异常不会被强制捕获。但是,运行时异常可以像任何其他异常一样被捕获

try {
  mongoClient = new MongoClient( connectionString )
} catch (MongoException me) {
  // handle exception
}

因此,除非抛出异常,否则假设所有内容都处于一致状态——这是Java的方式。

在JavaScript中,您可以打印出错误

    try{
        mongoose.connection('connetion url');
    }catch(error){
        console.log(error);
    }

问题是,即使没有连接,我的处理也会发生。我宁愿在开始时进行连接测试,看看是否有可访问的数据库。如果您捕捉到如图所示的异常,我很怀疑您的处理是否会运行。但是,您当然可以定期执行
mongoClient.getDatabaseNames()
或类似操作,并触发事件或类似事件……遵循以下解决方案:=