[Jennifer] 제니퍼 쓰레드(Thread) kill 불가능한 경우

[Jennifer] 제니퍼 쓰레드(Thread) kill 불가능한 경우

제니퍼에서 특정 쓰레드(예를 들면 불기둥이 올라온 쓰레드)를 kill 했을 때 죽지 않는 경우가 있다.

문의결과 이러한 경우는 소켓을 읽고 있는 경우(socket read 상태)라고 한다.

소켓이 읽고 있는 경우라도 강제로 쓰레드를 kill 하기 위해서는 enable_thread_kill_with_socket_close 옵션을 On 하면 된다고 한다.

적용은 해당 옵션 변경 후 WAS 재기동해줘야 한다.

<적용 방법>

1. 제니퍼 우측 상단의 톱니바퀴 아이콘 클릭

2. [모니터링 대상] – [에이전트 고급 옵션] 항목 클릭. 이후 옵션 적용하고자 하는 인스턴스 선택한다.

 

3. 옵션 중에서 enable_thread_kill_with_socket_close 항목을 찾아 [사용자 정의 설정] On 으로 변경. 화면 우측의 [저장] 버튼 클릭.

4. 적용은 해당 인스턴스 WAS 재기동 후 적용된다.

참고로 제니퍼는 일정 시간 이상 지연된 쓰레드를 자동으로 kill 하도록 처리할 수 있는데, socket read 상태인 쓰레드는 이에 해당하지 않는다. 위 옵션을 적용하더라도 자동 kill은 불가능하다는 이야기다.

socket read 상태인 쓰레드는 위 옵션을 적용해야만 kill할 수 있으며, 오직 수동으로만 kill 할 수 있다고 한다.