zmi*_*ila 16 java mongodb mongo-java
我想知道,如果有办法检查mongoDB服务器是否从mongoDB的java驱动程序运行?
根据教程,我可以做到
Mongo m = new Mongo();
// or
Mongo m = new Mongo( "localhost" , 27017 );
// and
DB db = m.getDB( "mydb" );
Run Code Online (Sandbox Code Playgroud)
但是如何检查我可以使用这些Mongo和DB?我在API中看不到isConnected()方法.
db.getConnector().isOpen()
Run Code Online (Sandbox Code Playgroud)
返回true
我找到的唯一方法是调用db.getDatabaseNames()并捕获MongoException.
如果有一些更文明的方法?
Ben*_*out 20
您可以运行ping命令
Mongo mongo = new Mongo();
DBObject ping = new BasicDBObject("ping", "1");
try {
mongo.getDB("dbname").command(ping);
} catch (MongoException e) {
...
}
Run Code Online (Sandbox Code Playgroud)
Ted*_*ung 12
我发现这比ping命令更直接:
Mongo mongo = new Mongo();
try {
mongo.getConnector().getDBPortPool(mongo.getAddress()).get().ensureOpen();
} catch (Exception e) {
...
}
Run Code Online (Sandbox Code Playgroud)
Gat*_* VP 11
如果有办法检查mongoDB服务器是否从MongoDB的java驱动程序运行?
所以如果你能做到以下几点:
Mongo m = new Mongo( "localhost" , 27017 );
DB db = m.getDB( "mydb" );
Run Code Online (Sandbox Code Playgroud)
然后你连接到数据库,否则m.getDB()
会抛出异常.如果可以连接到数据库,则MongoDB服务器正在运行.
我找到的唯一方法是调用db.getDatabaseNames()并捕获MongoException.如果有一些更文明的方法?
这种方法有什么特别的错误吗?
驱动程序基本上在沙箱中运行,它可以连接或不连接.您是要求驱动程序知道有关服务器的具体信息(进程X正在运行吗?),但这不是驱动程序的工作.它可以连接也可以不连接,它不负责操作服务/进程,只是为了连接它.
要知道该进程实际上正在运行,您需要在该服务器上使用管理功能,以便检查mongod
确实正在使用正确的参数运行.
归档时间: |
|
查看次数: |
21389 次 |
最近记录: |