当我编写一个连接到mongodb的java程序时,我找不到任何检查mongodb连接状态的java api,比如“isConnected”方法。我使用以下代码来设置连接:
Mongo mongo = new Mongo("localhost", 27017);
DB db = mongo.getDB("database");
DBCollection col = db.getCollection("collection");
但是如果它无法建立连接(例如mongodb服务没有运行),我想重新连接到mongodb,直到连接可用为止?
while(mongo == null)
{
//connect to mongo again
}
我不确定上面的代码是否正确,因为实际上它并没有检查连接状态。那么还有其他方法可以重新连接吗?
答案 0 :(得分:2)
您可以检查它是否已连接,也许就在那一刻。但是如果它在你的支票和实际操作之间下降怎么办?无论如何,你仍然需要处理连接失败。检查“isConnected()”是一个感觉良好的解决方案,并没有真正提供任何好处。你最好的选择就是尝试你的工作。如果连接失败,java驱动程序将尝试重新连接(服务器或网络可能已关闭......)然后您可以重试。
答案 1 :(得分:0)
不确定,但我认为您可能正在使用旧的Java MongoDB客户端/驱动程序 在最新的客户端/驱动程序中,该类称为MongoClient。
http://api.mongodb.org/java/current/
您可以实例化并呼叫
getDatabaseNames()
或getDB( "admin" )
如果该调用成功(不抛出异常),则为 服务器已启动,您已连接。否则,就有了 一个问题。
另见:
http://docs.mongodb.org/ecosystem/tutorial/getting-started-with-java-driver/