설치및환경설정 JEUS Thread State Notify 설정

Similar documents
개발및운영 Tibero DB Link (Tibero To Oracle) - Local 방식

[JEUS 7] eclipse plug-in 연동 1. 개요 Eclipse 와 JEUS 7 연동시필요한 plug-in 제공및환경설정에관한가이드제공하여 Eclipse 에서 JEUS 7 기동및 종료테스트할수있는방법을기술하였습니다. 2. Plug-in 설치 2.1 [Step

개발및운영 Tibero Perl 연동

목차 1. 노드매니저종류 Java Type SSH Type 노드설정파일및로깅 nodes.xml jeusnm.properties <servername>.properties...

튜닝및모니터링 OS 별 TCP Recommend Parameter for WebtoB/JEUS

설치및환경설정 Tibero tbprobe 사용법과원격지포트체크

Linux 권장커널파라미터 1. 커널파라미터별설명및설정방법 1.1 nofile ( max number of open files ) 설명 : 지원되는열린파일수를지정합니다. 기본설정이보통대부분의응용프로그램에대해충분합니다. 이매개 변수에설정된값이너무낮으면파일열기오류, 메모리

윈백및업그레이드 Tibero Flashback 가이드

SSL 접속테스트 본문서에서 WebtoB 가설치된디렉토리는 [WEBTOBDIR] 로표기하겠습니다.. 윈도우계열과리눅스 / 유닉스계열모두명령은동일하므로윈도우를기준으로설명하도록하겠습니다. 1. WebtoB 설정 1.1 Test 용인증서생성 SSL 접속테스트를위해 Webto

목차 1. TABLE MIGRATOR 란? TABLE MIGRATOR 홖경설정 TABLE MIGRATOR 바이너리 Shell 설정 Migrator.Properterties 파일설정 TAB

목차 1. 개요 개요 연동테스트홖경 PowerBuilder Connection Tibero ODBC Driver 설정 PowerBuilder Connection 설정 Tiber

목차 JEUS JNLP Client Sample 가이드 JNLP 란 JNLP의이점 TEST TEST 환경 TEST Sample sample application 셋팅 (ser

개요오라클과티베로에서 JDBC 를통해접속한세션을구분할수있도록 JDBC 접속시 ConnectionProperties 를통해구분자를넣어줄수있다. 하나의 Node 에다수의 WAS 가있을경우 DB 에서 Session Kill 등의동작수행시원하는 Session 을선택할수있다.

SSL(Secure Socket Layer) 과 TLS(Transport Layer Security) 개요 전자상거래가활발해지면서웹보안이매우중요해지고있으며, 최근정보통신망법의개정으로아무리소상공인이라 도홈페이지운영시개인정보를취급하고있다면아래와같은내용을조치하도록되어있습니다

목차 1. 웹서비스의예 테스트환경설치 설치전고려사항 설치할공간확보 테스트환경구축 설치파일준비 설치 Windows에서의설치 Linux 에서

목차 JEUS EJB Session Bean가이드 stateful session bean stateful sample 가이드 sample source 결과확인 http session에

튜닝및모니터링 HP JVM 튜닝옵션

튜닝및모니터링 Tibero EVENT 가이드

목차 1. Tibero 4 설치개요 Install 전 Check 사항 H/W 요구사항 Tibero 4 설치 Tibero 설치폴더생성 Tibero 바이너리압축해제 $T

개발및운영 Eclipse 를이용한 ANT 활용방법

목차 1. TAC 구성준비사항 TAC 구성순서 VirtualBox 으로 CentOS 설치 VirtualBox 에서 TAC 구성

Tmax

Microsoft Word - AnyLink Introduction v3.2.3.doc

ÃÖÁ¾PDF¿ë

FY2005 LIG

설치및홖경설정 Tibero 4 SP1 TAC 설치 - Windows 홖경

목차 1. 개요 현상 문제분석 문제해결

untitled

Getting Started Guide

기술교육 SSL 설정및변환방법

2012-민간네트워크-05_중국

H_AR_ P

기술교육 Architecture & Monitoring

목차 1. 환경변수 OS별환경변수설정 ESQL 시작 ESQL 프로그램생성젃차 오라클 Pro*C 젂환 Precompiler 변경 확장자 *.pc를 *.tbc로변경

PowerPoint 프레젠테이션

: Symantec Backup Exec System Recovery 8:

untitled

국문-현대-내지ar

Main Title

untitled

2003³â¿¬Â÷º¸°í¼�

rv 브로슈어 국문

Hardware Manual TSP100

IvoBase Injector

Microsoft Word - s.doc

자바-11장N'1-502

Microsoft PowerPoint - 04-UDP Programming.ppt

Hynix_K_pdf

목차 BUG offline replicator 에서유효하지않은로그를읽을경우비정상종료할수있다... 3 BUG 각 partition 이서로다른 tablespace 를가지고, column type 이 CLOB 이며, 해당 table 을 truncate

Microsoft PowerPoint - Supplement-03-TCP Programming.ppt [호환 모드]

Microsoft PowerPoint - 03-TCP Programming.ppt

내용물 시작 3 구성품 4 MDA200 기본 사항 5 액세서리 6 헤드셋 연결 7 탁상 전화기: 연결 및 통화 8 탁상 전화기(표준) 8 탁상 전화기+ HL10 거치대와 전원 공급 장치(별도 구매) 10 탁상 전화기+ EHS 케이블 12 컴퓨터: 연결 및 통화 13 컴

untitled

Installation Area : Baseball Stadium Lighting Sajik Baseball Stadium Busan, Korea 시애틀 구단이 조명 시설을 이벤트 기능으로 활용하는 모습이 좋았고, 선수들의 반응도 괜찮았습니다. 우리도 이를 접목시킨다면

레이아웃 1

SKC_AR_±¹¹® 01pdf

180427_SDI_Brochure_국문_최종2

Copyrights and Trademarks Autodesk SketchBook Mobile (2.0.2) 2013 Autodesk, Inc. All Rights Reserved. Except as otherwise permitted by Autodesk, Inc.,

untitled

PowerPoint 프레젠테이션

about_by5

<4D F736F F F696E74202D BDE1B5E5BEC6C0CC20C8B8BBE7BCD2B0B35F46696E616C2E BC8A3C8AF20B8F0B5E55D>

사 업 보 고 서 (제 181 기) 사업연도 2012년 01월 01일 2012년 12월 31일 부터 까지 금융위원회 한국거래소 귀중 회 사 명 : (주) 신한은행 대 표 이 사 : 서진원 본 점 소 재 지 : 서울특별시 중구 세종대로 9길 20 (전 화)

J2EE & Web Services iSeminar

Remote UI Guide

Installation Area : Baseball Stadium Lighting New York Yankee Stadium USA [MLB 공식 Auditor, 마이클 오웬 인터뷰 내용 중] 지난 2015년 6월에 측정되었던 HID 기존 조명에 비해 이번에 설치된 기

180830_SDI_Brochure_국문_수정-3

토익S-채용사례리플렛0404

PRO1_04E [읽기 전용]

Copyright 2012, Oracle and/or its affiliates. All rights reserved.,.,,,,,,,,,,,,.,...,. U.S. GOVERNMENT END USERS. Oracle programs, including any oper

한아IT 브로셔-팜플렛최종

121220_워키디_상세설명서.indd

6주차.key

Intro to Servlet, EJB, JSP, WS

2

02 C h a p t e r Java

.

<28C3D6C1BEA3DFB8AEBAE429C7D1B1B9C0CFBABBBFACB1B8C3D1BFACC7D5C8B85FC1A633C8B85FB1B9C1A6C7D0BCFAB4EBC8B85FB9D75FBDC9C6F7C1F6BEF65FC7C1B7CEB1D7B7A52E687770>

0821-롯데 내지1-pdf

10-2. 세무정보(완 - 31).hwp

2011_LG»ó»ç_ÃÖÁ¾

P2WW HNZ0

+Z _CL_USB.indd

I T C o t e n s P r o v i d e r h t t p : / / w w w. h a n b i t b o o k. c o. k r

uFOCS

??꽂???

Interstage5 SOAP서비스 설정 가이드

consulting

BTSK

Microsoft PowerPoint - ch02_인터넷 이해와 활용.ppt

BSC Discussion 1

01.하나금융_일반현황

PowerChute Personal Edition v3.1.0 에이전트 사용 설명서

PowerPoint 프레젠테이션

P2WW HNZ0

<4D F736F F F696E74202D20C1A63235C0E520B3D7C6AEBFF6C5A920C7C1B7CEB1D7B7A1B9D628B0ADC0C729205BC8A3C8AF20B8F0B5E55D>

SK∞«º≥ ºˆ¡§060323

untitled

No

pdf

Transcription:

JEUS Thread State Notify 설정 2014. 07. 02

목차 1. thread-state-notify 설정... 3 1.1 시나리오 #1. max-thread-active-time : 10초... 3 1.2 시나리오 #2. max-thread-active-time : 10초, thread-interrupt-execution : true... 4 1.3 시나리오 #3. max-thread-active-time : 10초, restart-threshold-ratio : 0.5... 5 2. JEUS 설정... 6 2.1 JEUS 5.x 설정... 6 2.2 JEUS 6.x 설정... 6 3. 테스트... 7 3.1 테스트환경... 7 3.2 테스트... 8 3.2.1 Thread block 테스트... 8 3.2.2 Blocked Thread 삭제 일반 JSP... 9 3.2.3 Blocked Thread 삭제 Socket 통신중인 jsp 수행... 11 3.2.4 Container restart 테스트... 12 3.2.5 JEUS 5.x... 13 2

Thread State Notify 설정가이드 1. thread-state-notify 설정 thread-state-notify 설정은 Thread 의최대수행시간을정함으로써 Thread Hang 으로인한서비스의중단을방지하 는것을목적으로합니다. Thread 의수행시간을주기적으로체크하여최대수행시간을넘기는 Thread 에한하여강제로 Block 시키고삭제할 수있으며 Blocked Thread 의수가일정비율을넘기면 Container restart 를수행할수있습니다. 주의할점은 Thread 의상태를모니터링하는주기는 WEBMain.xml 의 monitoring 태그에서정한다는것입니다. monitoring 태그를설정하지않고 thread-state-notify 설정만했을경우 Thread 의수행시간을 manager 가체크하지 않기때문에원하는결과를얻을수없습니다. 해당설정의자세한설명은아래에서시나리오 #1, #2, #3 으로나누어설명하겠습니다. 1.1 시나리오 #1. max-thread-active-time : 10 초 Thread 의최대수행시간 (max-thread-active-time) 을 10 초로설정하고 JSP 를수행하였을경우를그림으로표시했습니 다. 그림에서보면 JSP 가수행후 Running 상태가되었다가 10 초가경과하면서 Blocked 상태가되는것을확인할 수있습니다. 이때 Blocked 된 Thread 를대신할신규 Thread 가생성되는것도확인할수있습니다. 이러한수행이계속되면서 10 초이상수행되는 Thread 들은 Blocked 상태가되고신규 Thread 를생성함으로써가용 할수있는 Thread 의개수가일정하게유지됩니다. 3

1.2 시나리오 #2. max-thread-active-time : 10 초, thread-interrupt-execution : true Thread 의최대수행시간 (max-thread-active-time) 을 10 초, thread-interrupt-execution 을 true 로설정하고 JSP 를수행하 였을경우를표시했습니다. 그림에서보면 JSP 가수행후 Running 상태가되었다가 10 초가경과하면서 Blocked 상태가되는것을확인할수있 습니다. 이때일반적인 JSP의경우와소켓통신중인 JSP 두가지경우로나뉘는데일반적인 JSP를수행하는경우는해당 Thread 가 Blocked 되고 uri가 unknown 으로변한후바로 Thread 가삭제됩니다. 하지만소켓통신중인 JSP를수행하는경우는해당 Thread 가 Blocked 되지만 uri는수행되는 AP가계속표시되며 Thread 의삭제가이루어지지않습니다. 이러한차이를보이는이유는 thread-interrupt-execution 설정이 true 인경우 Blocked 상태가된 Thread 에 manager 가 interrupt 신호를보내 Thread 의삭제를시도하게되는데소켓통신의경우 interrupt 신호로인한 Exception 이쉽 게발생하지않아삭제를수행하지못하기때문입니다. < 주의사항 > 소켓통신중 JSP의경우 Blocked 상태에서삭제가이루어지지않기때문에 Thread 를계속물고있습니다. 이때 WebtoB 와의연결도계속물려있기때문에 WebtoB 와 JEUS 사이의 Thread 개수가같을경우신규생성된 Thread 는 reconnecting 상태가되므로 WebtoB 의 Thread 개수를더많이주어야합니다. 4

1.3 시나리오 #3. max-thread-active-time : 10 초, restart-threshold-ratio : 0.5 Thread 의최대수행시간 (max-thread-active-time) 을 10 초, restart-threshold-ratio 을 0.5 로설정하고 JSP 를수행하였을 경우를표시했습니다. 그림에서보면 2 개의 JSP 가수행후 Running 상태가되었다가 10 초가경과하면서 Container 가 restart 하는것을확 인할수있습니다. restart-threshold-ratio 값을전체 Thread 를 50% 로정하였기때문에 4 개의 Thread 중 2 개의 Thread 가수행하다 Blocked 로빠지는즉시 Container Restart 가이루어지는것입니다. 이비율은 WEBMain.xml 에설정한 Thread 의 max값을기준으로하기때문에 Blocked 상태의 Thread 로인해생기는신규 Thread 와는별개로산정됩니다. 즉 min값이 4개이고 max가 10개일경우 restart 비율을 50% 로설정하면기준값이 Thread 5개가되며중간에신규 Thread 가생기더라도 Blocked 된 Thread 가 5개가되는시점에 Container restart 가이루어집니다 5

2. JEUS 설정 2.1 JEUS 5.x 설정 thread-state-notify 서브태그 태그명 max-thread-active-time (ms) notify-threshold (int) restart-threshold (int) notify-subject restart-subject 설명 Thread 가수행될수있는최대시간값 Worker thread 가클라이언트요청을서비스할때부터측정되며초과할경우해당 Thread 를강제로 Block 시킴 Block 된 Thread 의최대개수를설정할수있으며이를초과하면 smtp-handler 에설정된 email 주소로해당내용을통보 Block 된 Thread 의최대개수를설정할수있으며이를초과하면해당 Container Restart 수행 notify-threadhold 조건초과에대한통보시사용되는 Subject Container Restart 수행에대한 email 통보시사용되는 Subject monitoring 서브태그 태그명 check-thread-pool (default : 300000ms) 설명 Thread Pool 안에있는 Worker Thread 의상태를점검하기위한시간간격을설정 설정된시간간격을주기로 Worker Thread 의상태를점검 2.2 JEUS 6.x 설정 thread-state-notify 서브태그 태그명 max-thread-active-time (ms) notify-threshold-ratio ( 소수점이하로설정 : 0.5) notify-subject restart-subject thread-interrupt-execution restart-engine-execution 설명 Thread 가수행될수있는최대시간값. Worker thread 가클라이언트요청을서비스할때부터측정되며초과할경우해당 Thread 를강제로 Block 시킴 Block 된 Thread 의최대비율를설정할수있으며이를초과하면 smtp-handler 에설정된 email 주소로해당내용을통보 Therad Pool 의 Max Thread 개수에서설정된비율로값을기준값을산정 notify-threadhold 조건초과에대한통보시사용되는 Subject Container Restart 수행에대한 email 통보시사용되는 Subject 최대수행시간초과로 Blocked 상태로변한 Thread 에 interrupt 신호를보낼것인지결정 interrupt 신호를받은 Thread 는 Exception 후삭제됨최대수행시간초과로 Blocked 상태로변한 Thread의개수가 restart-threshod-ratio 를넘어선경우해당 engine 의 restart 유무를결정 6

monitoring 서브태그 태그명 check-thread-pool (default : 300000ms) 설명 Thread Pool 안에있는 Worker Thread 의상태를점검하기위한시간간격을설정 설정된시간간격을주기로 Worker Thread 의상태를점검 3. 테스트 3.1 테스트환경 테스트버전 : JEUS 6.0.0.7 Test 소스파일 : sleep.jsp, urlconnection.jsp sleep.jsp : Thread Hang 상태를만들기위하여 Thread.sleep 를사용함. <% Thread.sleep(10000000); out.println("+++++++++=================="); %> urlconnection.jsp : Socket 통신중에 Hang 이발생한 Thread 을만들기위하여사용함. sleep.jsp 를 socket 통신으로 read 하므로원격지에서응답이없어 Thread Hang 이발생 <%@ page language = "java" contenttype="text/html;charset=euc-kr" %> <%@ page import="java.net.*" %> <%@ page import="java.io.*" %> <% try{ String address = "http://10.183.37.77/test1/sleep.jsp"; URL url = new URL(address); URLConnection conn = (URLConnection) url.openconnection(); InputStream is = conn.getinputstream(); InputStreamReader isr = new InputStreamReader(is); BufferedReader br = new BufferedReader(isr); String line = null; while((line=br.readline())!=null){ out.println(line); %><br><br><% } out.println("######## Url Connection end ########"); }catch(ioexception e){ out.println(e.tostring()); } %> 7

3.2 테스트 3.2.1 Thread block 테스트 check-thread-pool 5 초, max-thread-active-time 10 초설정후 sleep.jsp 테스트 sleep.jsp 가수행된후 10 초가지나면서 blocked 상태로변하고신규 Thread 가생성되는것을 Thread 상태에서확 인할수있습니다. JEUS Server log 에서도 Thread 가 blocked 로변하고신규 Thread 가생성되는과정을확인할수 있습니다. WEBMain.xml <?xml version="1.0"?> <web-container xmlns="http://www.tmaxsoft.com/xml/ns/jeus" version="6.0"> <monitoring> <check-thread-pool>5000</check-thread-pool> <!--Thread monitoring 시간을 5 초로설정 --> </monitoring> <webtob-listener> <max-thread-active-time>10000</max-thread-active-time> <!-- 최대수행시간을 10 초로설정 --> Thread Pool 상태 (min:4, max:4) 51 webtob1-hth0(localhost:9900)-w00 waiting 43927 52 webtob1-hth0(localhost:9900)-w01 waiting 43926 53 webtob1-hth0(localhost:9900)-w02 waiting 43926 54 webtob1-hth0(localhost:9900)-w03 active 2749 /test1/sleep.jsp sleep.jsp 실행 10초경과 51 webtob1-hth0(localhost:9900)-w00 waiting 44928 52 webtob1-hth0(localhost:9900)-w01 waiting 44927 53 webtob1-hth0(localhost:9900)-w02 waiting 44927 54 webtob1-hth0(localhost:9900)-w03 blocked 12750 /test1/sleep.jsp Blocked Thread 57 webtob1-hth0(localhost:9900)-w4 waiting 2730 신규 Thread 8

JEUS Server log deleting long active thread (webtob1-hth0(localhost:9900)-w03), active time = 13275, uri = /test1/sleep.jsp, alive = true blocked thread (webtob1-hth0(localhost:9900)-w03) - uri : /test1/sleep.jsp, alive = true creating new thread (webtob1-hth0(localhost:9900)-w4 3.2.2 Blocked Thread 삭제 일반 JSP 3.2.1 번설정에서 thread-interrupt-execution 추가후 sleep.jsp 테스트 sleep.jsp 가수행된후 10 초가지나면서 blocked 상태로변하고신규 Thread 가생성되는것을 Thread 상태에서확 인할수있습니다. 이때 blocked 상태로변한 Thread 는 interrupt 신호를받고 Exception 을발생시키며삭제되는것 을 JEUS Server log 에서확인할수있습니다. WEBMain.xml <?xml version="1.0"?> <web-container xmlns="http://www.tmaxsoft.com/xml/ns/jeus" version="6.0"> <monitoring> <check-thread-pool>5000</check-thread-pool> <!--Thread monitoring 시간을 5 초로설정 --> </monitoring> <webtob-listener> <max-thread-active-time>10000</max-thread-active-time> <!-- 최대수행시간을 10 초로설정 --> <thread-interrupt-execution>true</thread-interrupt-execution> <!--Blocked Thread 에 interrupt 신호를보내도록설정 --> 9

Thread Pool 상태 (min:4, max:4) 52 webtob1-hth0(localhost:9900)-w01 waiting 75065 53 webtob1-hth0(localhost:9900)-w02 waiting 75064 54 webtob1-hth0(localhost:9900)-w03 waiting 75064 57 webtob1-hth0(localhost:9900)-w4 active 637 /test1/sleep.jsp sleep.jsp 실행 10초경과 52 webtob1-hth0(localhost:9900)-w01 waiting 85107 53 webtob1-hth0(localhost:9900)-w02 waiting 85106 54 webtob1-hth0(localhost:9900)-w03 waiting 85106 57 webtob1-hth0(localhost:9900)-w4 blocked 10680 unknown Blocked Thread 59 webtob1-hth0(localhost:9900)-w5 waiting 579 신규 Thread Interrupt 신호를보냄 52 webtob1-hth0(localhost:9900)-w01 waiting 90280 53 webtob1-hth0(localhost:9900)-w02 waiting 90279 54 webtob1-hth0(localhost:9900)-w03 waiting 90279 59 webtob1-hth0(localhost:9900)-w5 waiting 5751 Blocked Thread 사라짐 JEUS Server log deleting long active thread (webtob1-hth0(localhost:9900)-w4), active time = 10100, uri = /test1/sleep.jsp, alive = true, <<stacktrace(webtob1-hth0(localhost:9900)-w4)>> java.lang.thread.sleep(native Method) jeus_jspwork._600_sleep_5fjsp._jspservice(_600_sleep_5fjsp.java:50) jeus.servlet.jsp2.runtime.httpjspbase.service(httpjspbase.java:106) javax.servlet.http.httpservlet.service(httpservlet.java:818) blocked thread (webtob1-hth0(localhost:9900)-w4) - uri : /test1/sleep.jsp, alive = true Failed to execute jsp : /sleep.jsp << Exception >> javax.servlet.servletexception: java.lang.interruptedexception: sleep interrupted at jeus.servlet.jsp2.runtime.pagecontextimpl.dohandlepageexception at jeus.servlet.jsp2.runtime.pagecontextimpl.handlepageexception at jeus_jspwork._600_sleep_5fjsp._jspservice at jeus.servlet.jsp2.runtime.httpjspbase.service at javax.servlet.http.httpservlet.service at jeus.servlet.jsp.jspservletwrapper.executeservlet at jeus.servlet.engine.servletwrapper.execute at jeus.servlet.jsp.jspservletwrapper.execute at jeus.servlet.engine.webtobrequestprocessor.run Caused by: java.lang.interruptedexception: sleep interrupted at java.lang.thread.sleep at jeus_jspwork._600_sleep_5fjsp._jspservice... 6 more 10

3.2.3 Blocked Thread 삭제 Socket 통신중인 jsp 수행 3.2.1 번설정에서 thread-interrupt-execution 추가후 urlconnection.jsp 테스트 urlconnection.jsp 가수행된후 10 초가지나면서 blocked 상태로변하고신규 Thread 가생성되는것을 Thread 상태 에서확인할수있습니다. 이때 blocked 상태로변한 Thread 는 2) 번의 sleep.jsp 실행시와같이 interrupt 신호를받 지만 interrupt Exception 을발생시키지못하고계속 Thread Pool 에남아있는것을확인할수있습니다. 해당 Thread 는 300 초가지난후에아래 log 와함께삭제되었습니다. worker(webtob1-hth0(localhost:9900)-w02:unix(hth-0:9900:44)) : terminated WEBMain.xml <?xml version="1.0"?> <web-container xmlns="http://www.tmaxsoft.com/xml/ns/jeus" version="6.0"> <monitoring> <check-thread-pool>5000</check-thread-pool> <!--Thread monitoring 시간을 5 초로설정 --> </monitoring> <webtob-listener> <max-thread-active-time>10000</max-thread-active-time> <!-- 최대수행시간을 10 초로설정 --> <thread-interrupt-execution>true</thread-interrupt-execution> <!--Blocked Thread 에 interrupt 신호를보내도록설정 --> Thread Pool 상태 (min:4, max:4) 51 webtob1-hth0(localhost:9900)-w00 active 921 /test1/urlconnection.jsp urlconnection.jsp 실행 52 webtob1-hth0(localhost:9900)-w01 waiting 3536 53 webtob1-hth0(localhost:9900)-w02 waiting 3535 54 webtob1-hth0(localhost:9900)-w03 waiting 3536 10 초경과 51 webtob1-hth0(localhost:9900)-w00 blocked 11953 /test1/urlconnection.jsp Blocked Thread 52 webtob1-hth0(localhost:9900)-w01 waiting 14567 53 webtob1-hth0(localhost:9900)-w02 waiting 14566 54 webtob1-hth0(localhost:9900)-w03 waiting 14567 57 webtob1-hth0(localhost:9900)-w4 waiting 124 신규 Thread 11

JEUS Server log webtob1-hth0(localhost:9900):3:1 deleting long active thread (webtob1-hth0(localhost:9900)-w00), active time = 11826, uri = /test1/urlconnection.jsp, alive = true, <<stacktrace(webtob1-hth0(localhost:9900)-w00)>> java.net.socketinputstream.socketread0(native Method) java.net.socketinputstream.read(socketinputstream.java:129) java.io.bufferedinputstream.fill(bufferedinputstream.java:218) java.io.bufferedinputstream.read1(bufferedinputstream.java:256) java.io.bufferedinputstream.read(bufferedinputstream.java:313) sun.net.www.http.httpclient.parsehttpheader(httpclient.java:681) sun.net.www.http.httpclient.parsehttp(httpclient.java:626) sun.net.www.protocol.http.httpurlconnection.getinputstream(httpurlconnection.java:983) webtob1-hth0(localhost:9900):3:1 blocked thread (webtob1-hth0(localhost:9900)-w00) - uri : /test1/urlconnection.jsp, alive = true 3.2.4 Container restart 테스트 3.2.1 번설정에서 restart-engine-execution 과 restart-threshold-ratio 를 0.5(50%) 로설정하고 urlconnection.jsp 테스트 active 중인 w02 Thread 가 10 초이상수행되면서 Blocked 됩니다. 이로인해 Blocked 된 Thread 가전체의 50%( 총 4 개중 2 개 w00, w02) 넘기면서 restart 하는조건에만족하여해당 Container 가 Thread dump 를남기고 restart 하게됩니다. WEBMain.xml <?xml version="1.0"?> <web-container xmlns="http://www.tmaxsoft.com/xml/ns/jeus" version="6.0"> <monitoring> <check-thread-pool>5000</check-thread-pool> <!-- Thread monitoring 시간을 5 초로설정 --> </monitoring> <webtob-listener> <max-thread-active-time>10000</max-thread-active-time> <!-- 최대수행시간을 10 초로설정 --> <restart-threshold-ratio>0.5</restart-threshold-ratio> <!--Blocked Thread 의최대비율을 50% 로설정 ( 기준값 : Thread max 값 )--> <restart-engine-execution>true</ restart-engine-execution> <!--Blocked Thread 가최대비율을넘으면 Conatiner restart--> 12

Thread Pool 상태 (min:4, max:4) 51 webtob1-hth0(localhost:9900)-w00 blocked 25279 /test1/urlconnection.jsp 52 webtob1-hth0(localhost:9900)-w01 waiting 24475 53 webtob1-hth0(localhost:9900)-w02 active 517 /test1/urlconnection.jsp 54 webtob1-hth0(localhost:9900)-w03 waiting 24474 56 webtob1-hth0(localhost:9900)-w04 waiting 15091 10 초경과 webtob1-hth0(localhost:9900)-w02 가 Blocked Thread 가되면서 Container Restart JEUS Server log (tmaxdev_servlet_engine2) (webtob1-hth0(localhost:9900)) thread state reporting [active, 2011.01.24 08:54:44, 40188 ms][/test1/urlconnection.jsp] [active, 2011.01.24 08:55:10, 14928 ms][/test1/urlconnection.jsp]... Now engine restarting... Full thread dump Java HotSpot(TM) Server VM (1.5.0_20-b02 mixed mode)... engine tmaxdev_servlet_engine2 of the container tmaxdev_container2 is trying to restart trying to shutdown container tmaxdev_container2 3.2.5 JEUS 5.x JEUS 5.x 는 6.x 와같은방식으로 Thread state notify 가수행되지만다른부분이몇가지있습니다. 최대수행시간 (max-thread-active-time) 을지나는 Thread 에대해서는 Blocked 상태로만들지만 6.x 와달리 interrupt 신호를줄것인지유무를설정하지않고바로수행합니다. Blocked Thread 의최대값은 6.x 와달리개수로지정하고 Container restart 또한유무를설정하지않고최대값을넘 어서면바로수행됩니다. 13

Copyright 2014 TmaxSoft Co., Ltd. All Rights Reserved. Trademarks Tmax, WebtoB, WebT, JEUS, ProFrame, SysMaster and OpenFrame are registered trademarks of TmaxSoft Co., Ltd. Other products, titles or services may be registered trademarks of their respective companies. Contact Information TmaxSoft can be contacted at the following addresses to arrange for a consulting team to visit your company and discuss your options. Korea TmaxSoft Co., Ltd 5, Hwangsaeul-ro 329beon-gil, Bundang-gu, Seongnam-si, Gyeonggi-do. South Korea Tel: +82-31-8018-1000 Fax: +82-31-8018-1115 Email: info@tmax.co.kr Web (Korean): http://www.tmaxsoft.com Technical Support: http://technet.tmaxsoft.com USA TmaxSoft, Inc. 560 Sylvan Avenue Englewood Cliffs, NJ 07632. U.S.A Tel: +1-201-567-8266 Fax: +1-201-567-7339 Email: info@tmaxsoft.com Web (English): http://www.tmaxsoft.com Russia Tmax Russia L.L.C. Grand Setun Plaza, No A204 Gorbunova st.2, Moscow, 121596 Tel: +7(495)970-01-35 Email: info.rus@tmaxsoft.com Web (Russian): http://ru.tmaxsoft.com Singapore Tmax Singapore Pte. Ltd. 430 Lorong 6, Toa Payoh #10-02, OrangeTee Building. Singapore 319402 Tel: +65-6259-7223 Email: info.sg@tmaxsoft.com United Kingdom TmaxSoft UK Ltd. Surrey House, Suite 221, 34 Eden Street, Kingston-Upon- Thames, KT1 1ER United Kingdom Tel: + 44-(0)20-8481-3776 Email: info.uk@tmaxsoft.com Web (English): http:/www.tmaxsoft.com Japan TmaxSoft Japan Co., Ltd. 5F Sanko Bldg, 3-12-16 Mita, Minato-Ku, Tokyo, 108-0073 Japan Tel: +81-3-5765-2550 Fax: +81-3-5765-2567 Email: info.jp@tmaxsoft.com Web (Japanese): http://www.tmaxsoft.co.jp China TmaxSoft China Co., Ltd. Beijing Silver Tower, RM 1508, 2 North Rd Dong San Huan, Chaoyang District, Beijing, China, 100027. China Tel: +86-10-6410-6145~8 Fax: +86-10-6410-6144 Email: info.cn@tmaxsoft.com Web (Chinese): http://www.tmaxsoft.com.cn Brazil TmaxSoft Brazil Avenida Copacabana, 177-3 andar 18 do Forte Empresarial, Alphaville - Barueri, Sao Paulo, SP-Brasil CEP 06472-001 Email: contato.brasil@tmaxsoft.com TD-JSCF-D0702001 14