개인 저장용 블로그

OHS Plugin Tutorials - WLIOTimeoutSecs, Idempotent 본문

Oracle Fusion Middleware/Oracle HTTP Server

OHS Plugin Tutorials - WLIOTimeoutSecs, Idempotent

우엉잇 2022. 5. 25. 14:54

WLIOTimeoutSecs 옵션은 WebLogic Server 요청에 대한 응답을 기다리는 시간을 정의합니다.

플러그인 WLIOTimeoutSecs은 서버가 응답할 때까지 기다린 다음 해당 서버가 작동하지 않음을 선언하고 다음 서버로 장애 조치합니다. 값을 큰 값으로 설정해야 합니다. 값이 서블릿을 처리하는 데 걸리는 시간보다 작으면 예기치 않은 결과가 나타날 수 있습니다.
Default
값은 120 입니다.

 

Idempotent 옵션은 ON으로 설정하고 서버가 WLIOTimeoutSecs 내에 응답하지 않는 경우 메소드가 Idempotent 경우 플러그인이 장애 조치됩니다.


ON
으로 설정되고 서버가 READ_ERROR_FROM_SERVER 같은 오류로 응답하는 경우 플러그인도 장애 조치됩니다

OFF 설정되어 있으면 플러그인이 장애 조치되지 않습니다.

 

Idempotent 요청이 WebLogic Server 성공적으로 전송되고 플러그인이 이제 백엔드 서버의 응답을 기다리는 경우에만 적용됩니다.

 

- 설정 방법

<IfModule weblogic_module>
.
Idempotent OFF
WLIOTimeoutSecs 600
.
</IfModule>

아래 내용들은 테스트 시나리오 입니다. 

 

가정 1) 서비스 호출도 WebLogic Server shutdown 다른 WebLogic Server 이어 호출이 될까?

 

WebLogic Server는 클러스터를 맺은 후 테스트 진행 하였다.

(단독 인스턴스 경우 해당 인스턴스가 죽으면 세션이 사라지기 때문에 테스트 하지 않았다.)

 

# mod_wl_ohs.conf

# 호출

 

페이지 호출 svr2 호출되고 이후 소스에 WLIOTimeoutSecs 값보다 낮은 30초를 딜레이 주고 나서 svr2 shutdown 하였다.

 

# 호출

 

테스트 결과 같은 세션으로 정상적으로 넘어 갔다. 그렇다면 WLIOTimeoutSecs 값보다 초과 값을 넣고 테스트 하면 어떡해 될까?

 

# 호출

 

svr1 에서 세션이 호출되는 모습을 확인 있다. 이후 70 delay svr1 서버를 shutdown 하도록 하자

 

# 호출

 

Idemponent OFF 이고 WLIOTimeoutSecs 값을 넘었을 다른 클러스터를 정상적으로 호출하지 못하고 Web Server Bridge 에러가 발생 하였다.

 

-----------------------------------------------------------------------------------------------------------------------

 

이번엔 Idemponent ON 설정한다.

 

# mod_wl_ohs.conf

# 호출

 

페이지 호출 svr1 호출되고 이후 소스에 WLIOTimeoutSecs 값보다 낮은 30초를 딜레이 주고 나서 svr1 shutdown 하였다.

 

# 호출

 동일한 세션이 정상적으로 다른 WebLogic Server로 호출 되었다. 

 

Web Server Bridge Idemponent과는 상관 없이 WLIOTimeoutSecs 값을 넘었을 발생한다는 것을 있었다. 

오라클에서는 Idemponent OFF 설정을 권장하데 이유로는 다음과 같다.

Idemponent ON 으로 설정 WLIOTimeoutSecs 값과 delay 값이 같으면 요청이 중복되기 때문에 OFF를 사용한다. 

(1번 서버, 2번 서버 둘 다 요청이 들어감)

 

테스트 해보자 

 

# 호출

# 호출

# WebLogic Log

weblogic access log에서도 확인 있듯이 count 3번에서 6번으로 3개가 늘어났다 ( 새로고침 1 눌렀지만 3 눌른걸로 처리됨)