728x90
개요
 WAS의 2중화 구성 환경에서 WAS1과 WAS2가 세션을 공유하지 못하는 현상이 발생

현상
 WAS의 2중화 구성 환경에서 이미지 업로드 하는 거래의 Flow를 진행 시 세션 공유가 되지 않음.
 이미지 업로드 거래 Flow
  1. 뷰어를 띄우는 부분 (WAS1 서버로 연결)
  2. 뷰어에서 ActiveX 에디터를 띄우는 부분 (WAS1 서버로 연결)
  3. ActiveX 에서 이미지 저장을 시작하는 부분 (WAS1 서버로 연결)
   3.1 StartUp (WAS2 서버로 연결)
   3.2 Update (WAS1 서버로 연결)
   3.3 Complete (WAS2 서버로 연결)
    ※ 위 3.1~3 부분은 세션상에서 받아온 userid를 파라매터로 처리
 3의 3.1 부터 세션 정보를 잃어버림.

원인
 이미지 업로드 거래를 처리하는 WAS(JEUS6)의 session-timeout 설정이 0으로 설정되었을 경우,
 JEUS6에서 세션서버를 사용 시 세션 정보를 자체적으로 삭제를 해버림.
 따라서 세션 공유가 불가능한 상황.

해결방안
 session-timeout 을 명시적으로 0이외의 시간으로 설정
 session-timeout은 web.xml에서 설정 가능

        <session-config>
            <session-timeout>180</session-timeout>
        </session-config>

 ※JEUS6의 session-timeout 적용 우선 순위
  1. web.xml
  2. $JEUS_CONFIG/servlet/webcommon.xml

 
728x90
728x90
개요
 WEBTOB를 기동하였으나, Port LISTEN이 되지 않음.
 WEBTOB의 IPCPerm 설정이 되지 않고, htl을 root로 설정하게 되어, 기동 시 htld의 퍼미션 거부로 인한 Port의 LISTEN이 되지 않음.

현상
 다음과 같은 로그가 발생하며 WEBTOB내 지정된 Port들이 LISTEN 하지 않음

[2018/11/04:05:47:49] HTH-12518 W HTH0072: Failed to connect to HTL. fail count=1, path=jeus/webserver/path/htld  errno=13(Permission denied)
[2018/11/04:05:47:51] HTH-12518 W HTH0072: Failed to connect to HTL. fail count=2, path=jeus/webserver/path/htld  errno=13(Permission denied)

 주의하여야 할 점은 이렇게 htld가 Permission denied를 당했음에도 불구하고, 프로세스를 검색하면 htl 프로세스가 보이며, 심지어 wsadmin에서 server 상태조회를 해보면 정상으로 보인다.!
 생각해보면.. 받아주는 포트가 막혀있는 상황일 뿐이지.. server는 멀쩡했을 것이다...
 아무튼 syslog를 자세히 들여다 보지 않는 이상 발견하기 굉장히 모호한 현상이다.

(wsadm) [2018/11/04:05:49:20]: si

------------------------------------------------------------------------------------------
 hth   svrname (svri)   status      reqs     count cqcnt    aqcnt qpcnt emcnt rscnt rbcnt
------------------------------------------------------------------------------------------
   0  html       (  0)   RDY           0         0     0        0     0     0     0     0
   0  fep        (  1)   RDY           0         0     0        0     0     0     0     0

원인
 왜 htld가 Permission denied를 당했는지 추적을 해보았다.

[jeus/webserver/path]ll
total 6
srwx------   1 jeus       tmax             0 Nov  5 10:00 hthd000
srwx------   1 root       tmax             0 Nov  5 10:00 htld
-rw-------   1 jeus       tmax          1536 Nov  5 10:00 webtob.pid
srwx------   1 jeus       tmax             0 Nov  5 10:00 wsmd

 그렇다면 htld는 왜 Permission이 저렇게 되어 있는 것인가?
 webtob 설정에서 정답을 찾을 수 있었다.
 $WEBTOB_HOME/config/http.m의 IPCPerm 이라는 설정을 보자

IPCPerm                                                                                     
● 종류: Numeric                                                                             
● 범위: 0600 ~ 0700                                                                         
● 기본값: 0700                                                                              
● WebtoB 내부 프로세스(WSM, HTL, HTH, HTMLS, CGIS 등) 및 관리 프로세스(wsadmin) 간의 내부 통신(IPC)에 사용하는 named-pipe의 접근권한을 설정한다.                                         
참고                                                                                         
UNIX/Linux 환경에서만 사용할 수 있다.                                                       

 그렇다. IPCPerm을 지정하지 않아, 기본값이 적용되었던 것이다.


해결방안
 $WEBTOB_HOME/config/http.m의 IPCPerm을 다음과 같이 설정하자.

*NODE
IPCPERM = 0777,

 ※참고사항
 WEBTOB에서 1024 이하의 Port를 사용하려면 System계정인 root의 권한이 필요하다.
 따라서 $WEBTOB_HOME/bin/htl의 권한에 setuid를 부여 해주어야 한다.
728x90

+ Recent posts