微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

SSLSessionContext 内存泄漏

如何解决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 举报,一经查实,本站将立刻删除。