블로그 이미지
Peter Note
Web & LLM FullStacker, Application Architecter, KnowHow Dispenser and Bike Rider

Publication

Category

Recent Post

2013. 7. 9. 18:02 Middleware, Cloud/WAS

Apache-WebLogic간의 연결시 Timeout 설정에 대한 부분을 체크해 보자.


1. Apache-WebLogic간의 연결

  - AJP를 사용하지 않고 직접 WebLogic module을 httpd.conf 에 설정한다 (참조)

  - 환경설정 예

LoadModule weblogic_module    modules/mod_wl_22.so


<Location /services>
    SetHandler weblogic-handler
</Location>

<IfModule mod_weblogic.c>
WebLogicCluster 127.0.0.1:8881,127.0.0.1:8882
MatchExpression *.jsp
Idempotent OFF
DynamicServerList OFF
KeepAliveEnabled OFF
ConnectTimeoutSecs 16
ConnectRetrySecs 2
FileCaching OFF
</IfModule>



2. Apache Timeout 설정

  - ajp 연결이 아니므로 workers.properties의 socket_timeout 또는 reply_timeout과 관련이 없다

  - apache/httpd/conf/extra/httpd-default.conf의 Timeout 과 관련 (참조)

Timeout 300
클라이언트의 요청에 의해 서버와 연결이 되었을 때 클라이언트와 서버간에 아무런 메시지가 발생하지 않았을 때 오류로 처리될 시간을 초단위로 설정. 초기값은 1200초(20분)이며 보통은 300초(5분)로 지정한다. 네트워크의 속도가 나쁠수록 수치값은 높게 설정하는 것이 좋다.



3. WebLogic Timeout 설정

  - httpd.conf에 timeout 관련 설정을 한다

  - WebLogic안에서 request<->response에 대한 직접적인 처리 - WLIOTimeoutSecs 설정 (참조1, 참조2)

WLIOTimeoutSecs 300

  - default : 300 초

  - 웹로직으로 request를 보내고 response를 받기 위해서 대기하는 시간

  - post 방식으로 대량의 데이터를 WebLogic으로 보낼 때 timeout이 발생하면 plug-ins에 "POST_TIMEOUT"에러가 발생한다


  - WebLogic을 클러스터링 환경으로 구성하였을 경우는 idempotent 환경에 대하여 고려한다. (참조)

Idempotent OFF

  - WebLogic서버로 부터 request전송시 에러가 발생하거나, 서버로부터 결과를 기다리는 중에
     위에 정의된 WLIOTimeoutSecs 시간 초과되어서 에러 발생시 요청을 다시 보낼 것인가를 지정.
  - 서버와 연결은 되었는데 그 이후에 에러가 발생 하였을 경우 해당 옵션이 ON이면 다시 연결을 시도하고
    요청을 보내게 되므로 중복 요청의 가능성이 있다. OFF권장.


posted by Peter Note