SSLSessionContext 内存泄漏

问题描述

我正在实现一个 java 服务,我们正在打开一个 mongo 客户端连接,从 mongo DB 获取数据,然后关闭连接我看到终身堆空间的内存不断增加

我尝试使用 jprofiler 进行内存分析,我看到很多 sun.security.ssl.SSLSessionImpl 实例。我正在关闭 mongo 连接,不知道为什么 SSL 连接是打开的

下面是我的 mongo 代码

------- Mongo 客户端代码 ---------

private void initMongoDB() {
        if (USER_NAME == null) {
            USER_NAME = envUtil.getEnvVar("mongoUserName");
        }
        if (PASSWORD == null) {
            PASSWORD = envUtil.getEnvVar("mongoPassword");
        }

        String mongoURI = mongoURIBuilder(connectionString);
        MongoClientURI uri = new MongoClientURI(mongoURI);
        mongoClient = new MongoClient(uri);
        String dbname = "SS";
        database = mongoClient.getDatabase(dbname);
    }
@Override
    public void load() throws Exception {
        try {
            initMongoDB();
            // Mongo load from DB code
        } catch (SSInternalException ex) {
            throw ex;
        } catch (Exception ex) {
            LogError.Log(ex,mongoObject.getDevId(),null);
            throw ex;
        } finally {
            mongoClient.close();
        }

    }

当我读到 SSLSessionContext 时,我明白它是一个软引用,当需要堆内存时将被清除,但不知道如何处理这些软引用 谁能建议可以做什么

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)