2
최근에 액세스하는 페이지가 매우 느리게로드되는 동안 error.log 파일 캐시, 메모리 누수 관련 오류가 발생하여 질문에 착수했습니다. AEM 인스턴스가 처리 할 수있는 JCR 세션 수.?AEM 인스턴스가 얼마나 많은 JCR 세션을 처리 할 수 있습니까?
최근에 액세스하는 페이지가 매우 느리게로드되는 동안 error.log 파일 캐시, 메모리 누수 관련 오류가 발생하여 질문에 착수했습니다. AEM 인스턴스가 처리 할 수있는 JCR 세션 수.?AEM 인스턴스가 얼마나 많은 JCR 세션을 처리 할 수 있습니까?
ResourceResolver
인터페이스를 사용하고 Session
을 사용하지 마십시오.ResourceResolver
이 서비스, 서블릿 또는 모델 (슬링 모델, WCMUse)에 제공되거나 적응을 통해 하나의 인스턴스를 만드는 경우이를 닫지 마십시오.ResourceResolverFactory
을 통해 ResourceResolver를 수동으로 생성해야하는 경우 수명이 다한 후 종료해야합니다.Session
에도 동일하게 적용됩니다.예 : 그것은 아무 대답 할 수 있다는 것을, 많은 요인에 따라 달라집니다
package io.salihovic.florian.examples;
import javax.annotation.CheckForNull;
interface ResourceResolverTemplate {
@CheckForNull ResourceResolver getResourceResolver();
default void usage() {
final ResourceResolver resolver = this.getResourceResolver();
if (resolver != null) {
// do something
resolver.close();
}
}
}
. 예 : 누출의 원인은 무엇입니까? –
@FlorianSalihovic 우리는 모든 사용자가 연결되어 개발 된 코드 기반을 실행/테스트하려고하는 DEV 상자가 있습니다. (대부분의 코드 스 니펫에는 데이터 종류 사용 사례를 설정하고 검색하는 JCR 세션이 있습니다.) 페이지를 테스트하는 데로드가 거의 걸리지 않습니다. 그렇다면 JCR 세션 수와 AEM 서버가 처리 할 수있는 최대 제한 수를 알아낼 수있는 방법이 있습니다. – VAr
로그에 "CacheManager : resizeAll"과 같은 항목이 있습니까? 그렇다면 다음 명령을 시도하십시오. jmap -histo | grep 세션 목록을 제공해야하는 SessionImpl. 내 생각에 두 가지 주요 요소 인 세션의 폐쇄 비율과 개방 비율이 다릅니다. 세션을 닫지 않는 잘못된 코드입니다. 장시간 실행중인 작업이 너무 많으면 잘 작성된 코드로 인해 JCR 세션이 증가 할 수 있으며 (예 : 느린 Mongo 배포시) 시스템이 멈추는 속도가 느려집니다. –