, 나는 Plumbr에서 메모리 누수 탐지 보고서가 계속 누출하는 JDOPersistenceManagerJDOPersistenceManager 메모리가 JDO JDOPersistenceManager를 사용
를 생성하고 파괴하는 올바른 방법은 무엇입니까Plumbr 보고서 :
객체가
에서 생성됩니다org.datanucleus.api.jdo.JDOPersistenceManagerFactory.newPM(org.datanucleus.api.jdo.JDOPersistenceManagerFactory, java.lang.String, java.lang.String):838
및 개최되고있다
in key of java.util.HashMap$Entry
in table of java.util.HashMap
in map of java.util.HashSet
in pmCache of org.datanucleus.api.jdo.JDOPersistenceManagerFactory
in pmf of com.example.MyServlet
마지막 줄인 pmf는 객체를 초기화하고 요청의 수명 동안 사용되는 싱글 톤입니다. MyServlet은 httpservlet이고 doPost가 호출됩니다.
PMF.java: 그래서 PMF의 singlton 처분하는 올바른 방법을 무엇
PersistenceManager pm = pmf.getPersistenceManager();
try {
//do stuff
}
finally {
pm.close();
}
:
public class PMF {
private static PersistenceManagerFactory instance;
public static PersistenceManagerFactory get() {
if (instance == null) {
Properties props = new Properties();
props.setProperty("javax.jdo.PersistenceManagerFactoryClass",
"org.datanucleus.api.jdo.JDOPersistenceManagerFactory");
props.put("datanucleus.PersistenceUnitName", "pmf");
instance = JDOHelper.getPersistenceManagerFactory(props);
}
return instance;
}
}
는 일반적으로 내가 시도/finally 블록 및 사용 PMF에서 PMF 인스턴스를 사용 plumbr에 의해보고 된 메모리 누수가 발생하지 않도록?
당신이 당신의 서블릿의 분야에서 어떤 객체를 저장하고 호출 할 수 있습니까? 서블릿은 한 번 생성되며 싱글 톤입니다. – NamshubWriter