如何从驱动程序检查mongoDB服务器是否正在运行


问题内容

我想知道,是否有一种方法可以检查mongoDB服务器是否正在从Java驱动程序中运行mongoDB?

根据教程,我可以做

Mongo m = new Mongo();
// or
Mongo m = new Mongo( "localhost" , 27017 );
// and
DB db = m.getDB( "mydb" );

但是如何检查我可以使用这些Mongo和DB?我在API中看不到isConnected()方法。

db.getConnector().isOpen()

返回true

我发现的唯一方法是调用db.getDatabaseNames()并捕获MongoException。

是否有一些更文明的做法?


问题答案:

是否有一种方法可以检查mongoDB服务器是否正在从Java驱动程序运行于MongoDB?

因此,如果您可以执行以下操作:

Mongo m = new Mongo( "localhost" , 27017 );
DB db = m.getDB( "mydb" );

然后,您将连接到数据库,否则m.getDB()将引发异常。如果可以连接到数据库,则表明 MongoDB服务器正在运行

我发现的唯一方法是调用db.getDatabaseNames()并捕获MongoException。是否有一些更文明的做法?

这种方法有什么特别错误的地方吗?

驱动程序基本上在可以连接或不能连接的沙箱中运行。您要让驱动程序了解有关服务器的特定信息( 进程X是否正在运行?
),但这不是驱动程序的工作。它可以连接也可以不连接,它不负责操作服务/进程,而仅负责对其进行连接。

要知道该进程实际上正在运行,您需要该服务器上的管理功能,这些功能允许您检查mongod是否确实在使用正确的参数运行。