我们遇到了一些问题,我们的mongo连接无法让我们从数据库中获取数据库名称。
我们称之为方法:
com.mongodb.Mongo.getDatabaseNames()
100次中有1次会引发以下异常:
Caused by: com.mongodb.CommandFailureException: { "serverUsed" : "localhost:27017" ,
"errmsg" : "exception: can't open database in a read lock. if db was just closed, consider retrying the query. might otherwise indicate an internal error" , "code" : 15927 , "ok" : 0.0}
at com.mongodb.CommandResult.getException(CommandResult.java:76)
at com.mongodb.CommandResult.throwOnError(CommandResult.java:131)
at com.mongodb.Mongo.getDatabaseNames(Mongo.java:397)
查看mongo代码,数据库是内部管理数据库
public List<String> getDatabaseNames(){
BasicDBObject cmd = new BasicDBObject();
cmd.put("listDatabases", 1);
>>CommandResult res = getDB(ADMIN_DATABASE_NAME).command(cmd, getOptions());
res.throwOnError();
此数据库未被删除,但此时还有其他几个可以删除的数据库。
还有其他人有这个问题吗?