问题描述
我正在实现一个 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 (将#修改为@)