본문 바로가기
IBM - old/WAS 문제&해결

WAS 재시작 시에 TCP 채널을 이미 사용 중이라고 TCPC0003E Exception 발생하면서 재시작이 안됨

by freeman98 2016. 5. 30.

1. WAS 버전 : WAS v6.1 에서 8.5.0.2 까지

2. OS : Linux(Redhat)

3. Error 발생 시점 : WAS 재시작 시에 TCP 채널을 이미 사용 중이라고 TCPC0003E Exception 발생하면서 재시작이 안됨

4. Error message :
TCPC0003E: TCP 채널 TCP_5 초기화가 실패했습니다. 호스트 * 및 포트 19354에 대해 소켓 바인드가 실패했습니다. 해당 포트가 이미 사용 중입니다.

TCPC0003E: TCP Channel TCP_1 initialization failed. The socket bind failed for host * and port 9354. The port may already be in use.

5. 예상 이유 :
   OS 의 특성상 WAS 중지시 포트를 해제해야하는데 TIME_WAIT 로 빠지면서 시작 되는 시점까지 잡혀있어서

   해당 포트를 binding 하지 못하는 것으로 보임


6. 조치 방안 :
   포트 바인딩은 OS 의 영역이므로 하단과 같이 OS 네트워크 관련 설정이 필요함


    /etc 디렉토리의 sysctl.conf 파일에 다음의 항목을 추가하여 포트 해제의 시간을 줄임(튜닝)
   net.ipv4.tcp_fin_timeout = 30

 

   WAS 의 TCP inbound 채널에 하단의 custom property 를 추가(8.5.5.1 부터는 하단의 옵션이 default)

   soReuseAddr=1



7. 참고 자료 

DCS Port Not Immediately Available on JVM Restarts
http://www-01.ibm.com/support/docview.wss?uid=swg21645658

Understanding socket bind failures on WebSphere Application Server
http://veithen.blogspot.kr/2014/01/websphere-bind-failures.html


TCP transport channel custom properties

http://pic.dhe.ibm.com/infocenter/wasinfo/v6r1/index.jsp?topic=%2Fcom.ibm.websphere.base.doc%2Finfo%2Faes%2Fae%2Frrun_chain_tcpcustom.html

댓글