当前位置: 首页 > 知识库问答 >
问题:

Mongo db超时异常表示连接被拒绝

荀裕
2023-03-14

请帮帮我.我使用mongo DB从一个应用程序很长一段时间。该应用程序处于开发模式。有时我看到这个错误

Error-无法调用该操作,最终得到一个错误:org.springframework.dao.DataAccessResourceFailureException:在等待连接10000 ms后超时。群集状态的客户端视图为{type=unknown,servers=[{address=localhost:27017,type=unknown,state=connectioning,Exception={com.mongodb.mongoexception$networking:Connection拒绝}}];嵌套异常为com.mongodb.mongoexception:Exception opening the socket},由{java.net.Connection Exception:Connection拒绝}}造成的com.mongodb.mongotion Exception:10000 ms后

但是当我重新启动服务器时,它不会再来了。但这一次我必须重新启动服务器。我使用的是mongodb 2.6.6。

请帮帮我.我害怕未来,因为很快它就会进入直播模式。我的Databaseconnection类:

static final String mongoServer = Play.application().configuration().getString("application.mongo.db.server");
static final String mongoDBname = Play.application().configuration().getString("application.mongo.db.dbname");
static final String mongoUsername = Play.application().configuration().getString("application.mongo.db.username");
static final String mongoPassword = Play.application().configuration().getString("application.mongo.db.password");
static final int connectionPerHost = Play.application().configuration().getInt("application.mongo.db.connections");
static final int connectionIdleTime = Play.application().configuration().getInt("application.mongo.db.idletime");

private MongoTemplate _mongoTemplate;
private static MongoClient   _mongo;

public MongoTemplate getContext() {
    if(_mongoTemplate == null)
        openDbConnection();
    if(_mongo == null || _mongoTemplate == null)
        Logger.error("DatabaseConnection::openDbConnection - Unable to get context. How is this possible?");
    return _mongoTemplate;
}

private static synchronized void createMongo() {
    if(_mongo == null) {
        Logger.debug("DatabaseConnection::openDbConnection - Opening a new connection");
        MongoClientOptions options = new MongoClientOptions.Builder().connectionsPerHost(connectionPerHost)
                .cursorFinalizerEnabled(true).maxConnectionIdleTime(connectionIdleTime).build();
        MongoCredential credential = MongoCredential.createMongoCRCredential(mongoUsername, mongoDBname, mongoPassword.toCharArray());
        ServerAddress addr = null;
        try {
            addr = new ServerAddress(mongoServer);
        } catch (UnknownHostException e) {
            Logger.error("Error Connecting to Mongo: Wrong Server??", e);
            e.printStackTrace();
        }
        _mongo = new MongoClient(addr, Arrays.asList(credential), options);
    }
}

private boolean openDbConnection() {
    try {
        if(_mongo == null) createMongo();
        // TODO: Connection Pooling
        _mongoTemplate = new MongoTemplate(_mongo, mongoDBname); //new MongoTemplate(dbFactory, converter);
        return true;
    } catch (Exception e) {
        Logger.error("Error Opening Connection:", e);
        e.printStackTrace();
    }
    return false;
}

private boolean closeDbConnection() {
    try {
        _mongoTemplate = null;
        return true;
    } catch (Exception ex) {
        Logger.error("Error Closing", ex);
    }
    return false;
}

@Override
protected void finalize() throws Throwable {
    closeDbConnection();
    super.finalize();
}

共有1个答案

云镜
2023-03-14

通常在未建立monogdb连接时出现,请验证它。

 类似资料:
  • 我正在尝试使用java邮件api,并且在servlet中有以下代码用于sen mail。我找不到解决错误的方法。 我的控制台中出现以下错误: 原因:java.net.ConnectException:连接被拒绝:java.net.DualStackPlainSocketImpl.connect0(本机方法)java.net.DualStackPlainSocketImpl.socketConnec

  • 我正在使用Spring 5网络流量、SpringBoot 2和Reactive MongoDB构建一个POC。在使用maven插件构建项目时,我得到了如下错误MongoDB连接错误:- 以下是我的申请表。属性文件:- 波姆。xml:- 请告知这里可能存在什么问题?我是否需要在我的机器上显式安装MongoDB并在运行此项目之前运行它。我相信MongoDB实例将自行运行,因为SpringBoot将在运

  • 我对React和Node还不熟悉,尽管我的代码有几天没有出现错误,但今天我的终端出现了错误,我无法连接到我的mongo数据库。我使用节点服务器运行服务器。js命令,但我得到了错误。有人能帮我找到解决办法吗?谢谢 错误 服务器正在端口5000上运行(节点:3339)DeprecationWarning:当前的服务器发现和监控引擎已弃用,并将在未来的版本中删除。要使用新的服务器发现和监控引擎,请将选项

  • 代码片段如下所示: 如果有人有决议,请帮忙?

  • 它感觉到,在提供时,他将127.0.0.1关联为不可达。 提前谢谢你。:)

  • 问题内容: 我怎样才能捕捉到异常? 问题答案: 通过捕获 所有 异常,并在属性不等于111的情况下重新引发它。或者,更好的是,使用常量代替: