WAS/WebLogic

[정보] WebLogic Stuck 스레드 이해

투칼론 2021. 7. 5. 17:03
반응형

WebLogic Server는 스레드가 일정 시간 동안 지속적으로 작동 (유휴 상태 아님)하는 경우 스레드가 중단 된 것으로 진단한다. 이 스레드를 stuck 스레드라고 한다.
스레드가 stuck으로 판단 기준으로 정하는 옵션을 설정할 수 있고, stuck 스레드가 감지되었을때 동작을 설정할 수 있다.

설정방법은 관리콘솔에서 서버 > 구성 > 튜닝 탭에서 아래 옵션을 설정한다.

1. Stuck 스레드 최대 시간(Stuck Thread Max Time) - 기본값 600초
2. Stuck 스레드 타이머 간격(Stuck Thread Timer Interval) - 기본값 60초

위의 값이 기본값으로 설정되어 있다면, 60초마다 스레드를 스캔하고, 600초 이상 걸리는 스레드는 Stuck 스레드로 간주한다는 의미이다.

그리고, stuck 스레드가 일정 개수를 초과하면, 해당 인스턴스를 FAIL 상태로 간주하고,  관리자 개입없이 자동으로 FAIL에 대한 Action을 지정할 수 있다.
설정방법은 관리콘솔에서 서버>구성>오버로드 탭에서 아래 옵션을 설정한다.

1. Stuck 스레드 수(Stuck Thread Count)
2.  Failure Action - 인스턴스를 강제 셧다운 또는 서스펜드 시킬수 있음

예를들어, Stuck Thread Count의 값을 20으로 설정하고,  Failure Action을 "Force Immediate shutdown of this server"를 지정햇다면, Stuck 스레드 수가 20개가 되면, 해당 인스턴스를 강제 종료시킨다.

고객사에서 Stuck 스레드는 가끔 발생하여, WebLogic 로그에 남아, 애플리케이션 튜닝은 권장하였지만, Failure에 대한 Action 설정은 권장하는 편은 아니었다.