Mongo / Morphia连接太多异常

时间:2015-08-20 13:27:23

标签: java mongodb morphia

我创建了一个单例类来获取mongo数据存储区。

public enum AppMongoConfig {
    INSTANCE;
    private Mongo mongo;
    private Morphia morphia = new Morphia();;
    private Datastore datastore;
    private String ip;
    private String schema;
    private DB db;
    private int port;

    private AppMongoConfig() {
        initialize();
    }

    public void initialize() {
        Logger.info(" ##### Initializing mongo app db ######");
        this.ip = Play.application().configuration()
                .getString("appMongoDBHost");
        this.schema = Play.application().configuration()
                .getString("appMongoDBSchema");
        this.port = Play.application().configuration().getInt("appMongoDBPort");
        try {
            this.mongo = new Mongo(this.ip, this.port);
        } catch (Exception e) {
            throw new RuntimeException(e);
        }

        this.db = this.mongo.getDB(this.schema);
        System.out.println(db.getCollection("DataSet").find().count());
        this.datastore = this.morphia.createDatastore(this.mongo,
                this.db.getName());
        Logger.info(" ##### Initialized mongo app db ######");
    }

    public Datastore getDs() {
        return this.datastore;
    }

}

现在我在后续调用查询mongo database的任何方法上调用getDs()。查询包括查找,更新,保存等。 要查看我的mongoDB的统计信息,我执行了mongostats脚本。 我一直在监视活动连接的数量。 我看到当我的应用程序查询mongoDB时,活动连接数量正在增加。 此计数超过了,我必须重新启动我的mongoDB。 有没有办法在一些空闲时间后释放连接或实现连接池,以便mongo不会抛出太多的连接异常?

0 个答案:

没有答案