2012-07-03 7 views
0

openJPA를 사용하여 거대한 트리 오브 개체를 다시 가져 오려고 시도 할 때 메모리 부족 오류가 발생합니다 ... 이 문제를 완화하기 위해 수행 할 수있는 작업은 다음과 같습니다. ...OpenJPA로 OutofMemory 예외가 발생했습니다.

내가 엔티티를 검색

은 ... 이 엔티티 (esesntially 같은 개체 수 있습니다) 그와 관련된 자식 엔티티가 있어야합니다 ... 그래서 난 어린이의 목록을 포함 ...

private List<Organization> childOrgsTree = new ArrayList<Organization>(); 

그래서 엔티티는 조직이고이 엔티티에 조직 목록을 포함합니다 ... 이제 네이티브 네이티브 쿼리 ge 이 특정 개체의 모든 자녀. 나는 각각의 아이들을 반복적으로 순환하여 그 엔티티의 각 자식을 찾는다. 네이티브 질의와 동일한 네이티브 질의를 호출하는 것은 아마 수천 시간이 걸린다. 자식 트리 객체를 재귀 적으로 생성합니다. 자, 이건 효과가있는 것처럼 보입니다. 메모리 부족으로 빠져 나갈 때까지 ... 나는이 작은 문제를 어떻게 풀 수 있을지 조금 불만 스럽습니까? 분명히 프로세스에 할당 된 메모리를 늘릴 수는 있지만, 나는 그것이 bandaid가 될 것을 두려워합니다. 어떤 아이디어?

답변

0

나는이 작은 문제를 해결할 수있는 방법을 약간 flumoxed?

두 가지 옵션이 있습니다. 응용 프로그램 코드에서 메모리를 적게 차지하거나 JVM 힙 크기를 늘리십시오.

+0

흠 ... 어쩌면, 나는이 링크를보고 있었다. http://openjpa.apache.org/builds/1.0.3/apache-openjpa-1.0.3/docs/manual/ref_guide_caching.html 그리고 http : //openjpa.apache.org/builds/1.0.4/apache-openjpa-1.0.4/docs/manual/ref_guide_pc_scos.html#ref_guide_pc_scos_proxy_ 나는 그들 중 한 명이 나에게 내가 찾는 답을 줄 것을 희망한다. – SoftwareSavant

+0

나는 없다. 어떻게 OpenJPA 사용자 매뉴얼이 JVM으로 너무 많은 데이터를 가져 오는 문제를 해결할 수 있는지 실마리가 없습니다. – Rick

+0

나는 실제로 어떤 종류의 페이징 메커니즘을 기대하고 있었다. 그러나 당신의 풍자는 값을 내지 않았다. – SoftwareSavant

관련 문제