JEUS Resource Leak 확인 방법
Resource Leak?
다수의 사용자가 사용하는 WAS 환경에서는 서비스가 지연되는 경우가 많다.
application 내 소스 내에서 close() 한 곳이 없다면 지속적으로 코드를 사용하게 된다.
지속되는 리소스 누수를 방지하기 위해 WAS에서 Resource Leak가 발생하면 로그 내에서 사용자에게 경고 메시지를 보내주는 설정을 할 수 있다.
여러 Resource Leak 중 DB Connection Pool 의 모든 Connection이 사용되거나 반납되지 않아 지연됐을 때의 로그와 경로를 기록한다.
Resource Leak 징후
- 속도 저하: 애플리케이션 작업의 긴 세션(몇 시간 또는 하루일 수 있음) 후에 UI가 느려진다.
- 웹 페이지가 충돌한다.
- 앱이 자주 일시 중지된다.
- JS HEAP이 시작된 것보다 높게 끝난다.
- 노드 크기 및/또는 리스너 크기가 증가한다.
jeus5,6 version
DB 누수 확인 명령어
find ./ -name “JeusServer*.log” | xartgs egrep “not closed|Request URI”|grep -v X
Invocation Manager 설정
Invocation manager는 엔진 컨테이너에서 서블릿/JSP, EJB Stateless Session Bean, 그리고 MDB와 같은 Stateless 메소드를 호출하는 동안 사용하는 외부 리소스(external resource)인 JDBC 커넥션과 Webt 커넥션을 추적하여 커넥션이 닫히지 않은 경우 모드에 따라 적절한 처리를 해준다.
Invocaiton manager는 JEUSMain.xml의 각 엔진 컨테이너 요소 하위에 하나의 **<invocation-manager-action>**으로 설정
#JEUSMain.xml
<jeus-system>
<node>
. . .
<engine-container>
. . .
**<invocation-manager-action>
AutoClose
</invocation-manager-action>**
. . .
</engine-container>
. . .
</node>
. . .
</jeus-system>
설정값 설명
NoAction | 기능을 사용하지 않는다. |
Warning | 만약 하나의 자원이 Stateless 메소드 호출 동안 사용되었지만 반환할 때 닫지 않게 될 경우 이벤트가 컨테이너 로그에 Warning 메시지로 기록된다. |
AutoClose | 만약 하나의 자원이 Stateless 메소드 호출 동안 사용되었으나 반환할 때 닫히지 않는다면 자원이 자동적으로 닫힌다. |
JEUS7,8
DB 누수 확인 명령어
find ./ -name “JeusServer*.log” | xartgs egrep “not closed|subject:”|grep -v X
Invocation Manager 설정
webadmin → Servers → 설정할 컨테이너 선택 → Basic → Action on Resource Leak
'MiddleWare > JEUS' 카테고리의 다른 글
[JEUS] Context Path 설정하지 않을 경우 호출 경로 확인 (0) | 2024.07.10 |
---|---|
[JEUS] JEUS / JAVA 버전 충돌 LOG 및 문제 해결 (0) | 2024.04.03 |
[JEUS] MobaXterm으로 SSH Tunneling하여 webadmin 호출 (1) | 2023.12.21 |
[JEUS] Unsupported major.minor version xx.0 (0) | 2023.12.05 |
[JEUS] JEUS 버전 별 SameSite 설정 (0) | 2023.11.06 |