Java mongodb重新连接

时间:2014-03-13 22:27:56

标签: java mongodb

当我编写一个连接到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
}

我不确定上面的代码是否正确,因为实际上它并没有检查连接状态。那么还有其他方法可以重新连接吗?

2 个答案:

答案 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/