如何使用Java驱动程序检查MongoDB 3.0客户端连接状态?
我遇到问题,因为我只希望在MongoClient成功建立连接后执行代码。但我在查找有关此的文档时遇到问题。这是我的例子如何使用Java驱动程序检查MongoDB 3.0客户端连接状态?,java,mongodb,database,Java,Mongodb,Database,我遇到问题,因为我只希望在MongoClient成功建立连接后执行代码。但我在查找有关此的文档时遇到问题。这是我的例子 MongoClientURI connectionString = new MongoClientURI("mongodb://"+mongoUser+":"+mongoPassword+"@"+config.getMongodbHost()+":"+config.getMongodbPort()+"/"+config.getMongodbDatabase());
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()
或类似操作,并触发事件或类似事件……遵循以下解决方案:=