WAS/WebLogic Server2009. 7. 2. 15:29
1. 현상

웹서버 Apache에 아래와 같이 Error Log가 보인다.

 

[Wed Jul 25 10:46:08 2007] [error] CONNECTION_REFUSED [os error=115, line 1687 of ../nsapi/URL.cpp]: Error connecting to host 10.46.102.79:7002
[Wed Jul 25 10:46:10 2007] [error]
CONNECTION_REFUSED [os error=115, line 1687 of ../nsapi/URL.cpp]: Error connecting to host 10.46.102.77:7002

 

Wed Jul 25 10:46:08 2007] [error] CONNECTION_REFUSED [os error=115, line 1687 of ../nsapi/URL.cpp]: Error connecting to host 10.*.*.79:7002
[Wed Jul 25 10:46:10 2007] [error]
CONNECTION_REFUSED [os error=115, line 1687 of ../nsapi/URL.cpp]: Error connecting to host 10.*.*.77:7002
[Wed Jul 25 11:25:02 2007] [error]
CONNECTION_REFUSED [os error=115, line 1687 of ../nsapi/URL.cpp]: Error connecting to host 10.*.*.80:7003

 

2. 원인

Apache WebServer를 통해서 전달되는 TCP ConnectionWebLogicBackLog 버퍼 제한에 걸려 연결이 거부되어 발생되는 사항임.WebLogic Server는 내부적으로 BackLog(TCP Connection Queue) 개수가 지정이 되어 있음(Default 50). 위의 에러로그의 내용으로 봐서 79WAS에서 BackLog가 다 차서 연결이 거부되었으며 거부된 연결은 77WAS로 연결을 시도했으나 역시 마찬가지였으며 계속해서 다른 인스턴스를 찾다가 78WAS로 연결이 된 것 같음.

 

3. 조치 사항

-Accept BackLog 개수 증가

WebLogic Console에서 다음 항목을 수정하여 주십시오.

Domain>Servers>myserver(인스턴스이름) 에서 Configuration>Tuning 탭을 선택하면 Accept BackLog 설정 항목에 값을 설정하면 됨. 

 

 

 위의 값을 25% 정도씩 증가시켜 CONNECTION_REFUSED가 발생하는지 검사한다.

 

- Apache httpd.conf 수정

 httpd.conf 에서 KeepAlive ON 옵션을 추가한다.

 

네트워크/커널 파라메터

Sun OS 경우 WebLogic Server machine 에서 다음 Network Parameter 값을 증가시켜 주십시오

 

Parameter

Suggested Value

/dev/tcp tcp_time_wait_interval

60000

/dev/tcp tcp_conn_req_max_q

16384

/dev/tcp tcp_conn_req_max_q0

16384

/dev/tcp tcp_ip_abort_interval

60000

/dev/tcp tcp_keepalive_interval

7200000

/dev/tcp tcp_rexmit_interval_initial

4000

/dev/tcp tcp_rexmit_interval_max

10000

/dev/tcp tcp_rexmit_interval_min

3000

/dev/tcp tcp_smallest_anon_port

32768

/dev/tcp tcp_xmit_hiwat

131072

/dev/tcp tcp_recv_hiwat

131072

/dev/tcp tcp_naglim_def

1

/dev/ce instance

0

/dev/ce rx_intr_time

32

Note: Prior to Solaris 2.7, the tcp_time_wait_interval parameter was called tcp_close_wait_interval. This parameter determines the time interval that a TCP socket is kept alive after issuing a close call. The default value of this parameter on Solaris is four minutes. When many clients connect for a short period of time, holding these socket resources can have a significant negative impact on performance. Setting this parameter to a value of 60000 (60 seconds) has shown a significant throughput enhancement when running benchmark JSP tests on Solaris. You might want to reduce this setting further if the server gets backed up with a queue of half-opened connections.

Tip: Use the netstat -s -P tcp command to view all available TCP parameters

 

 Open File descriptor 값을 ulimit 값을 이용하여 증가한다.


Posted by 달콤한녀석

댓글을 달아 주세요