본문 바로가기

WEB - Apache 계열/WEB-WAS 연동

[OHS] Failure of Web Server bridge 에러 조치

Failure of Web Server bridge 에러는

WebLogic Server Proxy Plugins 구간에서의 문제로 인해 발생한다.

 

Failure of Web Server bridge 에러에도 다양한 유형이 있다.

현재까지 경험해 본 유형은 총 두 가지.

1. No backend server available for connection

2. Internal processing error

 


 

<Failure of Web Server bridge: No backend server available for connection>

 

#. 참고 글

(weblogic proxy plugin 옵션 가이드 문서)

https://docs.oracle.com/en/middleware/fusion-middleware/web-tier/12.2.1.4/develop-plugin/plugin_params.html#GUID-08B84046-0EF9-4A21-B1A3-4618A3D4E87A

 


 

#. 문제 원인

OHS 가 WebLogic 측으로 request 전달 후, WebLogic 측에서 업무 처리 후 OHS 측으로 response를 준다.

OHS가 response를 받기까지 대기하는 시간을 설정하는 WLIOTimeoutSecs 라는 옵션이 있다.

해당 옵션에서 timeout이 발생하는 것.

 

OHS11g 는 Default 300초

OHS12c 부터는 Default 120초

timeout이 발생하면 아래와 같이

Failure of Web Server bridge: No backend server available for connection 에러 화면이 출력됨.

 


 

#. OHS 측 에러 로그

Failure of Web Server bridge: No backend server available for connection 오류 화면이 출력되었을 시,

Error Log 상에 아래와 같은 내용이 기록된다.

Exception type [READ_TIMEOUT] (no read after 120 seconds)

no read after 120 seconds'; state: reading status line or response headers from WLS (wrote? Y read? N); not failing over

request [/dbError.jsp] did NOT process successfully..................

 


 

#. 조치사항

WebLogic 연동 파라미터 중

WLIOTimeoutSecs 옵션을 수정해준다.

<IfModule weblogic_module>
      WebLogicCluster 0.0.0.0:PORT,0.0.0.0:PORT
      MatchExpression *.jsp
      MatchExpression *.do
      Idempotent OFF
      WLIOTimeoutSecs 600
</IfModule>

 


 

#. 주의사항

WLIOTimeout 시간을 필요 이상으로 너무 길게 세팅하여도 문제가 될 수 있다.

의도치 않게 처리가 오래 걸리는 프로세스가 다량으로 실행되었을 경우,

120초면 끊길 세션이 600초까지 불필요하게 점유하게 될 수 있기 때문이다.

 

에러가 발생하지 않는 시스템에서 굳이 해당 옵션을 수정하는 것은 좋지 않다 생각하며,

실제 에러가 발생하여 정말로 조치가 필요한 경우에만

서버 운영 담당자와 현업 고객들과의 합의를 거친 후에 수정하도록 하자.

 

대용량 쿼리 수행 등으로 인해 정말로 timeout 시간이 넉넉하게 세팅되어야 하는 상황에서만,

우선 쿼리 최적화와 WEB/WAS 성능 튜닝 등의 조치를 진행한 후에,

정말로 timeout 시간을 불가피하게 늘여야 하는 경우에만,

적절한 값으로 수정하여 사용하도록 하자.

 


 

<Failure of Web Server bridge: Internal processing error>

 

#. 참고 글

Oracle 문서 (Doc ID 2741536.1 / Doc ID 2877557.1 / Doc ID 2690792.1)

https://syhwang.tistory.com/40

https://opendatabase.tistory.com/entry/APACHE-OHS-400-%EC%9B%B9%EB%A1%9C%EC%A7%81-%EC%97%B0%EB%8F%99%ED%9B%84-%ED%8A%B9%EC%A0%95-%EC%9E%91%EC%97%85%EC%97%90-400-error

 


 

#. 에러 발생 환경

RHEL8

OHS12.2.1.4

WLS12.2.1.4

 


 

#. 에러 현상

OHS - WLS 연동된 상태에서 페이지가 정상적으로 호출되나,

특정 작업을 하는 페이지에서만 400에러 발생

 

브라우저 화면 상에서는 아래의 에러 메시지가 출력된다.

Failure of Web Server bridge: Internal processing error

 

 


 

#. 조치 방법

해당 에러 관련 사례 글을 찾아보면

대량의 내용을 POST로 WebLogic에 전달할 시에 발생한다는 공통점이 있다.

 

POST 요청의 크기가 2048 bytes가 넘으면

/tmp/_wl_proxy 디렉토리에 임시 보관 후 WebLogic으로 보내게 되는데,

해당 디렉토리 생성 자체가 되어있지 않거나 디렉토리 소유자 권한 설정이 잘못되어 있어서

데이터 기록이 불가하기 때문에 에러가 발생하는 것.

 

에러 조치 방법은

_wl_proxy 디렉토리가 없을 경우 직접 생성해주거나

_wl_proxy 디렉토리의 소유자 권한 설정을 올바르게 수정해주도록 한다.