728x90
현상
 외부 클라이언트에서 접속하지 못하는 현상 발생

원인
 1) wsadmin 의 st -p 로 html 프로세스 상태 확인
 html 프로세스의 status가 BRUN 상태로 남는 것을 확인

   -------------------------------------------------------------------------
   svr_name   svgname     spr_no(pid)  status    count    avg(rt)  clid svc 
   -------------------------------------------------------------------------

   html       htmlg        37(544822)   RDY     29235   0.0271( 0)   -1 -

   html       htmlg        38(630880)  BRUN     25869   0.0472(351) 5180 swf

   html       htmlg        39(606336)   RDY     29042   0.0290( 0)   -1 -

   html       htmlg        40(512038)   RDY     28183   0.0384( 0)   -1 -

   html       htmlg        41(503842)   RDY     27471   0.0445( 0)   -1 -

   html       htmlg        42(491548)   RDY     27667   0.0408( 0)   -1 -

 

 2) wsadmin 의 ci 로 클라이언트 상태 확인
 st -p 에서 보았던 BRUN상태의 clientID와 매칭 되는 부분과 접속이 BRUN상태라는 것을 확인할 수 있으며, 실질적으로 외부 사용자는 server쪽으로 요청을 했지만 계속 기다리는 상황인 것으로 추정.

------------------------------------------------------------------------
 no   status count idle    local_ipaddr:port    remote_ipaddr:port  spri
------------------------------------------------------------------------
 5178    RDY     2   33     172.17.1.72:80    221.166.124.147:3097    -1      

 5179    RDY     2   33     172.17.1.72:80    221.166.124.147:3099    -1      

 5180    RUN     4  190     172.17.1.72:80     218.150.29.223:1122    38      

 5181    RDY     2   30     172.17.1.72:80    221.166.124.147:3100    -1      

 5182    RDY     2   33     172.17.1.72:80    221.166.124.147:3098    -1      

 5183    RDY     2   33     172.17.1.72:80    221.166.124.147:3102    -1      

 

 3) network상태 확인
 netstat -an | grep [clientIP] 로 네트워크 상태 확인, sendQ의 byte size가 줄어들지 않고 계속 유지되고 있는 것 확인
 Client와 연결된 hth 프로세스가 더 이상 sendQ에 write를 못하고 대기하고 있는 상태로 추정

# netstat -na|grep 218.150.29.223

Active Internet connections (including servers)
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)

tcp4       0 119826  172.17.1.72.80         218.150.29.223.1122    ESTABLISHED

# netstat -na|grep 218.150.29.223

Active Internet connections (including servers)
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)

tcp4       0 119826  172.17.1.72.80         218.150.29.223.1122    ESTABLISHED

# netstat -na|grep 218.150.29.223

Active Internet connections (including servers)
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)

tcp4       0 119826  172.17.1.72.80         218.150.29.223.1122    ESTABLISHED

# netstat -na|grep 218.150.29.223

Active Internet connections (including servers)
Proto Recv-Q Send-Q  Local Address          Foreign Address        (state)

tcp4       0 119826  172.17.1.72.80         218.150.29.223.1122    FIN_WAIT_1

 

해결방안
 네트워크 상태 확인 필요, BRUN을 유발하는 거래 차단
728x90
728x90
개요
 JEUS 기동 시 TM로그 관련된 Exception메시지 기록

현상
 JEUS 기동 시 로그에서 아래와 같은 Exception 발생

Caused by: org.objectweb.howl.log.LogFileOverflowException: /shcsw/logs/jeus/TM/_`hostname`_"container_name"_LOCATION_0_10061_10_121_11_33_61/jeusres_1.log: high mark = 34bd000000; active mark for Logger = 33c2000037
        at org.objectweb.howl.log.LogFileManager.getLogFileForWrite(LogFileManager.java:389)
        at org.objectweb.howl.log.BlockLogBuffer.init(BlockLogBuffer.java:363)
        at org.objectweb.howl.log.LogBufferManager.getFillBuffer(LogBufferManager.java:591)
        at org.objectweb.howl.log.LogBufferManager.put(LogBufferManager.java:685)
        at org.objectweb.howl.log.Logger.put(Logger.java:207)
        at org.objectweb.howl.log.xa.XALogger.putCommit(XALogger.java:420)
        at jeus.transaction.logging.HowlLogManager.registerXaResourceFactory(HowlLogManager.java:282)
        ... 70 more

원인
 LogFileOverflowException이 발생한 로그 파일은 JEUS transaction 로그입니다.
 transcation 로그란? 예상치 못한 문제 상황에 있어서 거래의 무결성을 보장하기 위해 거래정보를 저장하는 로그 입니다.
 LogFileOverflowException은 JEUS transaction 로그파일에 더 이상 용량이 없을 경우 발생합니다. (default로 4K block을 500개 사용하여 2M의 file을 2개 사용)
 일반적으로 대량의 거래가 발생 하였을 경우 해당 현상이 발생할 수 있으며, 거래에 영향을 주지는 않습니다.

해결방안
 1) 컨테이너 중지 후 transaction 로그 삭제 후 기동
  -> LogFileOverflowException 확률이 있음

 2) transaction 로그 파일 size 튜닝
  JEUSMain.xml의 command-option에 추가, 증가 시킨 후 모니터링이 필요.

   -Dhowl.log.MaximumFiles=5
   -Dhowl.log.MaximumBlocksPerFile=1000

 3) TM 로그 disable 방법
  JEUSMain.xml의 command-option에 추가, 증가 시킨 후 모니터링이 필요.

   -Djeus.tm.noLogging=true
728x90
728x90
서비스 거래 처리 시 확장명 처리 로직
 - 정의된 mime type을 명시하여 설정
  1)WEBTOB
   ${WEBTOB_HOME}/config/http.m의 EXT절에 정의

*EXT
html        MimeType = "text/html",  SvrType = HTML
gif         MimeType = "image/gif",  SvrType = HTML
jpg         MimeType = "image/jpeg", SvrType = HTML
js          MimeType = "application/x-javascript",  SvrType = HTML
css         MimeType = "text/css",  SvrType = HTML


  2)JEUS
   ${JEUS_HOME}/config/`hostname`/"servlet"/webcommon.xml에 정의

    <mime-mapping>
        <extension>jspf</extension>
        <mime-type>text/plain</mime-type>
    </mime-mapping>
    <mime-mapping>
        <extension>me</extension>
        <mime-type>application/x-troff-me</mime-type>
    </mime-mapping>

 
728x90

+ Recent posts