如何从驱动程序检查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
是否确实在使用正确的参数运行。